我正在尝试使用 ggridges
包(基于 ggplot2
)创建一个joyplot . 一般的想法是,一个joyplot创建了精确缩放的堆积密度图 . 但是,我似乎无法使用加权密度生成其中一个 . 是否有一些方法可以在计算密钥套的创建中计算密度时采用抽样权重(加权密度)?
这里是 ggridges
包文档的链接:https://cran.r-project.org/web/packages/ggridges/ggridges.pdf我知道很多基于ggplot的包可以接受额外的美学,但我不知道如何为这种类型的geom添加权重 .
另外,这是ggplot中未加权的joyplot的示例 . 我试图将其转换为加权图,密度根据pweight加权 .
# Load package, set seed
library(ggplot)
set.seed(1)
# Create an example dataset
dat <- data.frame(group = c(rep("A",100), rep("B",100)),
pweight = runif(200),
val = runif(200))
# Create an example of an unweighted joyplot
ggplot(dat, aes(x = val, y = group)) + geom_density_ridges(scale= 0.95)
1 回答
看起来这样做的方法是使用stat_density而不是默认的
stat_density_ridges
. 根据您链接到的文档:幸运的是,
stat_density
(与stat_density_ridges
不同)了解审美weight
并将其传递给基础density
调用 . 你得到的结果如下:..density..
变量由stat_density
自动生成 .Note: 当您使用
stat_density
时,x轴范围的行为会有所不同:它会将密度图修剪到数据范围并丢弃漂亮的尾部 . 你可以通过手动扩展x轴来轻松纠正这个问题,但我认为值得一提 .