2

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

令 X 表示微软股票的月收益,让 Y 表示星巴克股票的月收益。假设 X∼N(0.05,(0.10)2) 和 Y∼N(0.025,(0.05)2)。

使用介于 –0.25 和 0.35 之间的值的网格,绘制 X 和 Y 的正态曲线。确保两条正态曲线在同一个绘图上。

我只能生成随机生成的正态分布,但不能在同一个图上生成,也不能通过指定均值和标准差来生成。提前非常感谢。

4

2 回答 2

4

使用功能线或点,即

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

另外,检查函数 par (使用 ?par )以获取绘图选项,常用选项包括标签(xlab/ylab)、绘图限制(xlim/ylim)、颜色(col)等...

于 2013-05-14T00:11:41.853 回答
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 函数添加到同一个图中。

于 2013-05-14T00:28:40.120 回答