如何在ggplot2中绘制裁剪的密度图而不会丢失任何部分

乔恩·明顿

我想使用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

这些产生以下图像:

图形包版本 ggplot2版本

如何使ggplot图像没有缺少的部分?

埃德温

使用xlim()ylim()直接删除所有不在指定范围内的数据点。这产生了密度图的不连续性。使用coord_cartesian()在放大,而不会丢失数据点。

ggplot(xval, aes(x=xval)) + 
  geom_density() +  
  coord_cartesian(ylim = c(0, 0.3))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章