我对使用baseplot-system的R中的绘图有疑问: 我想在1个图中绘制2个密度图。为此,他们需要具有相同的比例。我设法改变了比例,以便我可以将它们绘制成2个不同的图。这就是我想要它们的样子:
mexp = NULL
for (i in 1 : 1000) mexp = c(mexp, mean(rexp(1000, 0.2)))
hist(mexp, col="lightblue", main = "Averages of 40 exponentials")
plot(density(rnorm(1000,mean= 5)), bw=11,col="red" )
plot( density( mexp , frequency(F) ), col="green") # frequency(F) adjusts the y-Axis
当我尝试将它们绘制成1个图时,它不起作用:我只看到第一个图。我这样做了:
plot(density(rnorm(1000,mean= 5)), bw=11,col="red" )
line( density( mexp , frequency(F) , col="green" ))
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:1)
此代码更好,但仍包含几个无意义的项目。
首先,看起来你正在比较错误的发行版。您的mexp数据看似合理。但是,您似乎正在尝试将其与均值= 5和标准差= 1的正态分布进行比较。平均值非常接近mexp数据的平均值,但mexp数据的平均值为0.157。你不会得到那样的比赛。
接下来代码有一些错误和一些绝对的垃圾。你的第一个情节是:
plot(density(rnorm(1000,mean= 5)), bw=11,col="red" )
除了正常分布的标准偏差不合适之外,你还有bw = 11作为plot
的参数,没有这样的论证。 bw
是density
的参数,但对于bw这个数据来说这可能不是一个好的选择。让我们使用默认选项bw
绘制它,并在以后根据需要进行调整。因此,您的第一条曲线的更好版本将是:
plot(density(rnorm(1000,mean=5, sd=sd(mexp)), ),col="red" )
接下来,你有
line( density( mexp , frequency(F) , col="green" ))
是一个函数line
,但这不是你想要的。您正在寻找lines
。使用lines
,您正在绘制另一个密度。论证col="green"
是错误的。当density
应该是lines
的参数时,你可以将它作为参数。然后有frequency(F)
。这是胡言乱语。这里F将被视为逻辑值FALSE。 frequency
会将其视为一个时间序列并找到频率,以便给出值1.然后,您将其作为density
的第二个参数提供,以便将其视为带宽。这完全是胡说八道。我们只是删除它。这让我们lines(density(mexp), col="green")
将所有这些放在一起,我们得到:
plot(density(rnorm(1000,mean=5, sd=sd(mexp)), ),col="red" )
lines(density(mexp) , col="green" )
这可能不是您需要的,但将是一个更好的起点。