我刚刚开始使用R而我正在尝试绘制一些我作为数据帧加载的虚拟数据,然而,经过大量的试验和错误以及搜索之后,我试图制作一些条形图列和以下代码不起作用:
Termcount <- count(dummydata$Term)
ggplot(data=dummydata, aes(x=Term, y=Termcount, fill=Term)) + geom_bar(stat = "identity")
然而,下面的代码确实产生了我所追求的情节,但我不明白为什么。
ggplot() + aes(dummydata$Term, fill=dummydata$Term) + geom_bar()
这会生成以下图表:
运行第一个代码时,出现以下错误:
不知道如何自动为data.frame类型的对象选择比例。违约持续。 错误:美学必须是长度1或与数据(17)相同:x,y,填充
如果需要,我可以上传数据,如果这将有所帮助。
答案 0 :(得分:1)
与上述评论一样,ggplot()
希望所有aes()
参数都是您数据中的列名,dummydata
,这就是它为您提供的原因错误。如果您添加了&#34; count&#34;变量作为新列可行,如下所示:
library(tidyverse)
data(iris)
dummy <- iris %>% count(Species)
ggplot(data = dummy, aes(Species, y = n, fill = Species)) +
geom_bar(stat = "identity")
以上代码基本上是geom_bar()
正在做什么&#34;引擎盖&#34;在第二个示例中,因为它默认使用stat = "count"
。仅供参考geom_col()
是stat = "identity"
的{{1}}版本。
BTW欢迎来到SO,最好包含一个小数据示例(通过表格格式或geom_bar()
)或使用其中一个内置数据集,如dput()
。示例数据加上示例代码和您的预期输出将使人们能够更好地帮助并确保您解决特定问题。