我对R非常陌生,而且我面临着一个没有太多课堂资源的问题。我需要做一些我确信非常简单的事情。有人能给我指明正确的方向吗?这是我的任务:
让X表示微软股票的月收益,让Y代表星巴克股票的月收益。设X∼N(0.0 5,(0.10)2)和Y∼N(0.025,(0.0 5)2)。 使用-0.25到0.35之间的数值网格,绘制X和Y的法向曲线,确保两条法向曲线都在同一条图上。
我只能得到一个随机生成的正态分布,但不能同时在相同的地块上生成,也不能通过指定mean和st dev来实现。事先非常感谢。
发布于 2013-05-14 00:11:41
使用函数线或点,即
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-14 00:28:40
你有几个选择
使用基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
中的示例展示了如何在同一地块中添加两个具有不同方法的普通pdf函数。
发布于 2022-08-04 15:15:53
正如@mnel所建议的,我们可以使用ggplot2在一个图中绘制多个正态分布。(我发现这篇文章很古老,但是我在其他一些帖子中搜索了一下,却没有找到一个简单的答案,所以我想在这里发布一个答案)
base <- ggplot() + xlim(-10, 10)
base +
geom_function(aes(colour = "Original prior"), fun = dnorm, args = list(mean = 1, sd = 2)) +
geom_function(aes(colour = "Prior 1"), fun = dnorm, args = list(mean = 2, sd = 2)) +
geom_function(aes(colour = "Prior 2"), fun = dnorm, args = list(mean = 3, sd = 4)) +
geom_function(aes(colour = "Prior 3"), fun = dnorm, args = list(mean = 4, sd = 2))
https://stackoverflow.com/questions/16533089
复制相似问题