График результатов нескольких вызовов stat_function с использованием ggridges - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь сделать что-то похожее на этот вопрос SO , в котором спрашивается, как отобразить результаты для нескольких вызовов через stat_function в ggplot.То есть, как построить семейство функций в 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), который кажется очень грязным ...

...