我想使用ggplot2绘制由不同方法产生的密度的格子图,其中始终使用相同的yaxis比例尺。
我想将y轴的上限设置为低于任何一种方法的最高密度值的值。但是,默认情况下,ggplot会删除几何图形中位于绘制区域之外的部分。
例如:
# Toy example of problem
xval <- rnorm(10000)
#Base1
plot(density(xval))
#Base2
plot(density(xval), ylim=c(0, 0.3)) # densities > 0.3 not removed from plot
xval <- as.data.frame(xval)
ggplot(xval, aes(x=xval)) + geom_density() #gg1 - looks like Base1
ggplot(xval, aex(x=xval)) + geom_density() + ylim(0, 0.3)
#gg2: does not look like Base2 due to removal of density values > 0.3
这些产生以下图像:
如何使ggplot图像没有缺少的部分?
使用xlim()
或ylim()
直接删除所有不在指定范围内的数据点。这产生了密度图的不连续性。使用coord_cartesian()
在放大,而不会丢失数据点。
ggplot(xval, aes(x=xval)) +
geom_density() +
coord_cartesian(ylim = c(0, 0.3))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句