R &引用;错误:应使用'aes()'或'aes\'u()'创建映射;
我试图用R中的ggplot2包构建一个简单的直方图。 我从csv文件加载数据,并将其中两列放在一个数据框中,如下所示:R &引用;错误:应使用'aes()'或'aes\'u()'创建映射;,r,ggplot2,R,Ggplot2,我试图用R中的ggplot2包构建一个简单的直方图。 我从csv文件加载数据,并将其中两列放在一个数据框中,如下所示: df = data.frame(sp = data$species, cov = data$totalcover) sp被认为是23个级别(我的行数)的因子,cov被认为是23个数字。 然后,为了构建直方图,我执行以下操作: ggplot(df, aes(df$sp, df$cov) + geom_histogram()) 但是,R返回错误:“错误:应使用aes()或aes
df = data.frame(sp = data$species, cov = data$totalcover)
sp被认为是23个级别(我的行数)的因子,cov被认为是23个数字。
然后,为了构建直方图,我执行以下操作:
ggplot(df, aes(df$sp, df$cov) + geom_histogram())
但是,R返回错误:“错误:应使用aes()
或aes_389;()
创建映射”
如果我已经在使用aes,这怎么可能呢?它可能和值的类型有关吗?两个错误:
df
上调用ggplot时指定数据集。因此,无需添加df$sp
<代码>sp就足够了是的,它起作用了。如果已经指定了数据,则不应使用美元符号$。我也有同样的问题,当我去掉美元符号时,它起了作用
ggplot(dat1, aes(Q84, REGION, fill = Q3)) +
geom_bar(stat = "Identity") +
facet_grid(REGION ~ Q84)
避免这种情况:
ggplot(dat1, aes(dat1$Q84, dat1$REGION, fill = Q3)) +
geom_bar(stat = "Identity") +
facet_grid(dat1$REGION ~ Q84)
其中,
dat1
是我的数据集的名称。我有相同的错误,即使我使用的是aes()。所以我在aes()之前使用了“映射”
试一试
而不是
ggplot(df, aes(df$sp, df$cov) + geom_histogram())
替换括号作为另一种可能的解决方案,我发现同时加载库(cowplot)和库(ggplot2)会使“ggsave”(“test.pdf”,p1)“不起作用
相反,使用cowplot语法“save_plot(“test.pdf”,p1)”不要在aes中使用$。仅在ggplot中指定数据集。我使用了
plot%ggplot()
您不应该在aes()的内部使用$
。此外,直方图是单变量图,因此不需要为它们指定y变量。你的数据已经汇总了吗?也许你想要一个条形图?请尝试ggplot(df,aes(sp,cov)+geom\u col()
。如果您收到相同的消息,则可能已覆盖默认的aes()
函数。查看conflicts()
以查看是否正在隐藏ggplot2::aes
函数。非常感谢!geom\u col()它实际上是我想要的,并且不会返回任何错误,因此我认为我没有覆盖任何内容。请修复您的多个拼写错误。事实上,在aes()
中使用$
引用可能会造成难以诊断的情况,即数据以错误的顺序打印(或标签不匹配等)。是否要稍微扩展您的答案,以显示如何在aes()命令中指定变量?这将有助于在数据帧中指定两个以上的变量。
ggplot()+
geom_boxplot (df, mapping = aes(x= sp, y= cov))
ggplot(df, aes(df$sp, df$cov))+ geom_histogram()
ggplot(df, aes(df$sp, df$cov) + geom_histogram())