使用ggplot2沿平滑曲线绘制直方图或密度

Fra*_*ell 11 r histogram ggplot2 density-plot

是否有通用的方法来绘制密度(小提琴图)或直方图,显示x沿平滑(x,y)曲线的分布?我使用这种方法来显示x何时存在多个组的边际分布(例如,一个面板上的不同曲线,由不同颜色描绘).

下面是一个使用Hmiscplsmo函数得到分层黄土曲线和尖峰直方图的示例,显示了sex特定的数据密度age.

require(Hmisc)
set.seed(1)
age <- rnorm(500, 50, 15)
y <- sample(0:1, 500, TRUE)
sex <- sample(c('female','male'), 500, TRUE)
plsmo(age, y, group=sex, col=1:2,
      datadensity=TRUE, scat1d.opts=list(nhistSpike=20))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

小智 1

我相信你可以使用 ggsubplot 包来做到这一点。请参阅文章。我相信代码看起来像这样:

qplot(age, y, data = dataset, color = sex) + 
    geom_subplot(aes(x, y, data = distributions, group = sex, 
        subplot = geom_violin(aes(x, y, data = distributions))))
Run Code Online (Sandbox Code Playgroud)

但我认为您的示例没有提供足够的细节来在曲线上的点处创建小提琴。除非我误解了你的问题。