【发布时间】:2014-02-06 10:50:52
【问题描述】:
我正在使用ggplot,如此处所述
并在 R 控制台中输入
m <- ggplot(movies, aes(x = rating))
m + geom_density()
这可行,但是有什么方法可以消除 x 轴和密度图之间的连接(将密度图连接到 x 轴的垂直线)
【问题讨论】:
我正在使用ggplot,如此处所述
并在 R 控制台中输入
m <- ggplot(movies, aes(x = rating))
m + geom_density()
这可行,但是有什么方法可以消除 x 轴和密度图之间的连接(将密度图连接到 x 轴的垂直线)
【问题讨论】:
最一致的方式是(感谢@baptiste):
m + stat_density(geom="line")
我最初的建议是使用geom_line 和适当的stat:
m + geom_line(stat="density")
但不再推荐它,因为我收到了报告,它并不普遍适用于新版本 ggplot 中的每个案例。
【讨论】:
stat_density 与适当的geom
stat_density(geom='line')不能用于分组,而geom_line(stat='density')可以
geom_line(stat="density") 产生正确的图片,因为stat_density(geom="line") 产生的密度没有两条密度线的曲线下面积相等。
建议的答案不提供与geom_density 完全相同的结果。为什么不在基线上画一条白线?
+ geom_hline(yintercept=0, colour="white", size=1)
这对我有用。
【讨论】:
另一种方法是分别计算密度然后绘制它。像这样的:
a <- density(movies$rating)
b <- data.frame(a$x, a$y)
ggplot(b, aes(x=a.x, y=a.y)) + geom_line()
不完全一样,但非常接近。
【讨论】: