我有兴趣创建一个示例图(理想情况下使用ggplot),它将显示两条具有不同均值和不同标准偏差的法线。我发现了ggplot的stat_function()参数,但我不确定如何在同一个图上获得第二条曲线。
此代码生成一条曲线:
ggplot(data.frame(x = c(-4, 4)), aes(x)) + stat_function(fun = dnorm)
关于如何获得第二条曲线的任何建议?或者在基础包绘图中可能更简单?
答案 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')
)