如何在同一图上叠加2条正态分布曲线?

时间:2013-05-14 00:06:39

标签: r statistics distribution

我是R的新手,我面临的问题是没有太多的课堂资源。我需要做一些我确定非常简单的事情。有人能指出我正确的方向吗?这是我的任务:

  

让X表示Microsoft Stock的月度回报,让Y表示   星巴克股票的月度回报率。假设X~N(0.05,(0.10)2)   和Y〜N(0.025,(0.05)2)。

     

使用介于-0.25和0.35之间的网格,绘制法线曲线   对于X和Y.确保两条法线都在同一图上。

我只能生成一个随机生成的正态分布,但不是两个都在同一个图上,而不是通过指定mean和st dev。非常感谢。

2 个答案:

答案 0 :(得分:3)

使用功能线或点,即

s <- seq(-.25,.35,0.01)
plot(s, dnorm(s,mean1, sd1), type="l")
lines(s, dnorm(s,mean2, sd2), col="red")

另外,检查功能par(使用     ?齐名 ) 对于绘图选项,常见选项包括标签(xlab / ylab),plotlimits(xlim / ylim),颜色(col)等......

答案 1 :(得分:2)

你有几个选择

使用基数R

  • 您可以使用plot.function方法(调用curve来绘制函数)。如果您拨打plot(functionname)
  • ,则会调用此方法

您可能需要滚动自己的功能,这样才能正常工作。此外,您需要设置ylim,以便显示两个函数的整个范围。

# for example
fooX <- function(x) dnorm(x, mean = 0.05, sd = 0.1)
plot(fooX, from = -0.25, to = 0.35)
# I will leave the definition of fooY as an exercise.
fooY <- function(x) {# fill this is as you think fit!}
# see what it looks like
plot(fooY, from = -0.25, to = 0.35)
# now set appropriate ylim (left as an exercise)
# bonus marks if you work out a method that doesn't require this!
myYLim <- c(0, appropriateValue)
# now plot
plot(fooX, from = -0.25, to = 0.35, ylim = myYLim)
# add the second plot, (note add = TRUE)
plot(fooY, from = -0.25, to = 0.35, add = TRUE)

使用ggplot2

ggplot有一个函数stat_function,它会在一个图上强加一个函数。 ?stat_function中的示例显示了如何使用不同的方法将两个Normal pdf函数添加到同一个绘图中。