在同一图中绘制多条法线曲线

时间:2014-11-19 05:29:52

标签: r graphics ggplot2

我有兴趣创建一个示例图(理想情况下使用ggplot),它将显示两条具有不同均值和不同标准偏差的法线。我发现了ggplot的stat_function()参数,但我不确定如何在同一个图上获得第二条曲线。

此代码生成一条曲线:

ggplot(data.frame(x = c(-4, 4)), aes(x)) + stat_function(fun = dnorm)

关于如何获得第二条曲线的任何建议?或者在基础包绘图中可能更简单?

1 个答案:

答案 0 :(得分:5)

以防万一你也希望在ggplot(它也是3行......)中这样做。

ggplot(data.frame(x = c(-4, 4)), aes(x)) + 
  stat_function(fun = dnorm, args = list(mean = 0, sd = 1), col='red') +
  stat_function(fun = dnorm, args = list(mean = 1, sd = .5), col='blue')

如果您有两条以上的曲线,最好使用mapply。这使得它稍微困难一些。但对于许多功能而言,它可能是值得的。

ggplot(data.frame(x = c(-4, 4)), aes(x)) + 
  mapply(function(mean, sd, col) {
    stat_function(fun = dnorm, args = list(mean = mean, sd = sd), col = col)
  }, 
  # enter means, standard deviations and colors here
  mean = c(0, 1, .5), 
  sd = c(1, .5, 2), 
  col = c('red', 'blue', 'green')
)