在ggplot中为堆叠条形图添加更多复杂性

时间:2015-01-06 21:25:45

标签: r ggplot2 stackedbarseries

我知道,这有点混乱,但我正在尝试进一步划分构成堆叠条形图的数据。 以下是目前的情况:

A = ggplot(data=yield,aes(N,Mean.Yield,fill=Cutting))
B=A+facet_grid(Location~Mngmt)+geom_bar(stat="identity")
B+labs(x="Nitrogen Level")+labs(y="Yield (lb/acre)")

产生此图表: (我会张贴图表,但显然我的名声不能成为新成员!)

如何通过“物种”因子进一步划分条形图?我假设它涉及添加另一个geom,但我对这一切都是新手。 谢谢!

已编辑添加: 试图将mtcars用于虚拟数据,尽管不是最好的,因为mpg不是像两次切割那样的加权,而是在我的数据中。

mtcars$cyl=as.factor(mtcars$cyl)
mtcars$vs=as.factor(mtcars$vs)
mtcars$am=as.factor(mtcars$am)
mtcars$gear=as.factor(mtcars$gear)
mtcars$carb=as.factor(mtcars$carb)
A = ggplot(data=mtcars,aes(cyl,mpg,fill=gear))
B=A+facet_grid(am~vs)+geom_bar(stat="identity")

这产生了这个丑陋的图:http://i.imgur.com/sK7A5am.pnghttp://i.imgur.com/sK7A5am.png)我希望将每个条形(例如cylinders)分成两个并排的条形图(在本例中) ,6个并排条表示每个气缸系数的carb水平不同的发动机的mpg。我希望这是有道理的。再次感谢!

1 个答案:

答案 0 :(得分:1)

好的,根据您的评论,我想您要更改position中的geom_bar()。使用diamonds中的ggplot2数据集,这看起来像您想要的吗?

library(ggplot2)
## note the diamonds dataset comes with ggplot2

ggplot(diamonds, aes(clarity, fill=cut)) + 
    geom_bar(position="dodge") 

example image from ggplot2 http://docs.ggplot2.org/current/geom_bar-28.png

然后您只需添加facet和其他详细信息。使用diamonds示例,这将是

ggplot(diamonds, aes(clarity, fill=cut)) + 
    geom_bar(position="dodge") + 
    facet_grid(color ~ clarity)

我想出了如何浏览ggplot2 help files