我正在尝试执行与this SO question类似的操作,该问题询问如何通过ggplot通过stat_function
绘制多个调用的结果。也就是说,如何在ggplot中绘制函数族。
我想做类似的事情,但是使用ggridges包在y轴上显示不同的结果。到目前为止,我的代码如下:
library(ggplot2)
library(ggridges)
library(mc2d) ## for PERT distribution, but any function could be inserted
# generate results of distributions
x <- seq_along(100)
dst1 <- dpert(x, 20, 30, 40, shape = 4)
dst2 <- dpert(x, 40, 55, 75, shape = 4)
df <- data.frame("Levels" = c(rep("Level 1", length(x)), rep("Level 2", length(x))),
"dists" = c(dst1, dst2))
ggplot(df, aes(x = dists, y = Levels)) + geom_density_ridges()
但是,结果根本不符合我的预期...结果都徘徊在x轴的零值附近。我感觉这是由于ggridges试图将分布的输出转换为密度图。我需要介绍一个转换步骤吗?
编辑
我将函数调用从dpert
更改为rpert
,并模拟了很多数据。这会产生与我正在寻找的东西更接近的东西,但其中包含seq_along(1:1e6)
,感觉非常笨拙...