R baseplot:绘制2个密度图,用于x轴和y轴的1个绘图念珠标尺

时间:2017-09-16 14:31:17

标签: r plot scale base density-plot

我对使用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" )) 

任何人都可以帮助我吗?谢谢!

1 个答案:

答案 0 :(得分:1)

此代码更好,但仍包含几个无意义的项目。

首先,看起来你正在比较错误的发行版。您的mexp数据看似合理。但是,您似乎正在尝试将其与均值= 5和标准差= 1的正态分布进行比较。平均值非常接近mexp数据的平均值,但mexp数据的平均值为0.157。你不会得到那样的比赛。

接下来代码有一些错误和一些绝对的垃圾。你的第一个情节是:

plot(density(rnorm(1000,mean= 5)), bw=11,col="red" )

除了正常分布的标准偏差不合适之外,你还有bw = 11作为plot的参数,没有这样的论证。 bwdensity的参数,但对于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" )

Two densities

这可能不是您需要的,但将是一个更好的起点。