“错误:应使用`aes()`或`aes _()`创建映射。”

时间:2018-07-08 18:18:21

标签: 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_()创建映射。”

如果我已经使用过aes,怎么可能?可能与值的类型有关吗?

6 个答案:

答案 0 :(得分:2)

请勿在es中使用$。仅在ggplot中指定数据集。我使用了plot<-df %>% ggplot()

答案 1 :(得分:1)

两个错误:

  1. ggplot后必须关闭方括号,之后才需要调用直方图
  2. 您在type="submit" name="send" 上调用ggplot时指定数据集。因此,无需添加dfdf$sp就足够了。

此代码应该可以正常工作(如果您的数据没有问题)

sp

答案 2 :(得分:0)

是的,它有效。如果已经指定了数据,则不应使用美元符号$。我遇到了同样的问题,当我删除美元符号时,它起作用了。

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是我的数据集的名称。

答案 3 :(得分:0)

即使使用aes(),我也遇到相同的错误。所以我在aes()之前使用了“映射”

ggplot()+
geom_boxplot (df, mapping = aes(x= sp, y= cov))

答案 4 :(得分:0)

尝试

ggplot(df, aes(df$sp, df$cov))+ geom_histogram()

代替

ggplot(df, aes(df$sp, df$cov) + geom_histogram())

括号的移位

答案 5 :(得分:0)

作为另一个可能的解决方案,我发现同时加载library(cowplot)和library(ggplot2)会使“ ggsave(“ test.pdf”,p1)“不起作用。

相反,请使用Cowplot语法“ save_plot(“ test.pdf”,p1)“