使用ggplot2创建堆叠密度图

9

我正在尝试使用ggplot2创建堆叠密度图,并且我也在试图了解qplot相对于ggplot的工作原理。

我在网上找到了以下示例:

qplot(depth, ..density.., data=diamonds, geom="density", 
  fill=cut, position="stack")

我试图将它翻译成 ggplot 的调用,因为我想了解它是如何工作的。
ggplot(diamonds, aes(x=depth, y=..density..)) + 
  geom_density(aes(fill=cut, position="stack"))

这将创建一个密度图,但不会对其进行堆叠。

qplot创建的图形与ggplot创建的图形有何不同?

这是一个堆叠的密度图:

stacked density

非堆叠的密度图:

enter image description here

原始示例在此处


2
position="stack" 应该放在 aes 外面。 - kohske
1
如果你正在学习ggplot,我的建议是忽略qplot。我发现它的语法很令人困惑,虽然它可以节省一些按键,但会让你付出更多的心力。 - Drew Steen
1个回答

10

根据@kohske的评论,位置不是审美问题,因此不应该在aes调用内部:

ggplot(diamonds, aes(x=depth, y=..density..)) + 
  geom_density(aes(fill=cut), position="stack")

在此输入图片描述

或使用电影数据(你的示例图表所使用的):

ggplot(movies, aes(x=rating, y=..density..)) + 
  geom_density(aes(fill=mpaa), position="stack")

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接