如何在一个图中绘制多个泊松分布

Ahm*_*mad 1 plot r ggplot2

我想绘制多个泊松(使用不同的 lambdas (1:10))

我找到了以下函数来绘制绘图

plot_pois = function(lambda = 5)
{
  plot(0:20, dpois( x=0:20, lambda=lambda ), xlim=c(-2,20))
  normden <- function(x){dnorm(x, mean= lambda, sd=sqrt(lambda))}
  curve(normden, from=-4, to=20, add=TRUE, col=lambda)
}
plot.new()
plot_pois(2)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但我不能在它上面绘制另一个泊松。我试图更改plotpointsorlines但它完全改变了情节。我还想为不同的 lambda 值添加一个包含不同颜色的图例。

如果我可以使用 绘制它ggplot,那将是一个更好的选择。

tom*_*asu 7

另一种可能的tidyverse解决方案:

library(tidyverse)

# Build Poisson distributions

p_dat <- map_df(1:10, ~ tibble(
  l = paste(.),
  x = 0:20,
  y = dpois(0:20, .)
))

# Build Normal distributions

n_dat <- map_df(1:10, ~ tibble(
  l = paste(.),
  x = seq(0, 20, by = 0.001),
  y = dnorm(seq(0, 20, by = 0.001), ., sqrt(.))
))

# Use ggplot2 to plot

ggplot(n_dat, aes(x, y, color = factor(l, levels = 1:10))) +
  geom_line() +
  geom_point(data = p_dat, aes(x, y, color = factor(l, levels = 1:10))) +
  labs(color = "Lambda:") +
  theme_minimal()
Run Code Online (Sandbox Code Playgroud)

reprex 包(v0.2.1)于 2019 年 5 月 6 日创建