Как построить график функции плотности вероятности для множества данных в 1 графике? - PullRequest
0 голосов
/ 25 июня 2019

enter image description here

Я сгенерировал 100 выборок для распределения Пуассона с размером выборки n = 100, lambda = 3. Сейчас я пытаюсь построить график функции плотности вероятности для всех 100 выборок в одном графике.

set.seed(124)


Sample100 <- replicate(100, matrix(data=rpois(100, lambda = 3),ncol = 1), simplify = TRUE)

View(Sample100)

colMeans(Sample100)
apply(Sample100, 2, var)

plot(density(Sample100),xlab = "y", ylab = "P(Y)",main = "Probability density function for 100 sample" )

Что я получаю из кода, так это то, что он просто дает мне 1 строку, если я получу 100 строк на графике, потому что у меня 100 наборов данных

1 Ответ

0 голосов
/ 25 июня 2019

Если вы знакомы с ggplot, вы можете сделать следующее:

set.seed(124)
library(ggplot2)
library(tidyr)
Sample100 <- replicate(100, matrix(data=rpois(100, lambda = 3),ncol = 1), simplify = TRUE)
Samplelong <- gather(as.data.frame(Sample100))

ggplot(Samplelong, aes(x = value)) +
       geom_density(aes(group = key)) +
       labs(x = "y", #labs function overides labels on the plot
            y = "P(y)",
            title = "Probability density function for 100 sample") +
       theme_classic() +   # This changes the theme to look similar to base r plot theme
       #theme function allows you to modify plot further, everyting from size
       # fonts, angles, axis.
       theme(plot.title = element_text(hjust = 0.5, #hjust - horizontal shift
                                       face = "bold")) + . # face - the print for plot.title is set to bold
       scale_x_continuous(expand = c(0,0))  + #for the continuous x axis, limit expansion to 0 on both ends
       scale_y_continuous(expand = c(0,0)) #for the continuous y axis, limit expansion to 0 on both ends

. Для справки вы строите следующее:

ggplot(Samplelong, aes(x = value)) +
       geom_density() +
       labs(x = "y", y = "P(y)", title = "Probability density function for 100 sample") +
       theme_classic() +
       theme(plot.title = element_text(hjust = 0.5)) +
       scale_x_continuous(expand = c(0,0))  +
       scale_y_continuous(expand = c(0,0))

, если ggplot2 смущает вас, просто не торопитесьс попыткой сделать график красивым, для большинства целей хорошо.

 ggplot(Samplelong, aes(x = value)) +
   geom_density(aes(group = key)) +
   labs(x = "y", #labs function overides labels on the plot
        y = "P(y)",
        title = "Probability density function for 100 sample")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...