我正在尝试使用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,怎么可能?可能与值的类型有关吗?
答案 0 :(得分:2)
请勿在es中使用$。仅在ggplot中指定数据集。我使用了plot<-df %>% ggplot()
答案 1 :(得分:1)
两个错误:
type="submit" name="send"
上调用ggplot时指定数据集。因此,无需添加df
。 df$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)“