【问题标题】:Unsmooth lines when using the dnorm and plot functions in R在 R 中使用 dnorm 和 plot 函数时线条不平滑
【发布时间】:2014-06-17 18:39:37
【问题描述】:

我在R中使用dnormplot函数时遇到了一些麻烦。当我在Rcommander中执行以下代码时:

> x <- 50:225
> 
> a< - dnorm(x,165,15); b <- dnorm(x,149,18); c <- dnorm(x,134,25)
> 
> plot(x, a, type="l", lwd=3, ylim=c(0,1.2*max(a,b,c)), ylab="Probability
>      Density", xlab="Perikymata") lines(x,b, type="l", lwd=3, col="Red")
>      lines(x,c, type="l", lwd=3, col="Blue")

我得到下一张图片:

现在,完美。当我更改这些值时,问题就出现了,例如,使用以下代码:

> x <- 0:15
> 
> a <- dnorm(x,5.28,0.91); b <- dnorm(x,8.45,1.36)
> 
> plot(x,a, type="l", lwd=3, ylim=c(0,1.2*max(a,b)), ylab="Probability
>      Density", xlab="Perikymata") lines(x,b, type="l", lwd=3, col="Red")

使用这个文本我得到下一张图片:

如何在最后一张图中平滑这两条线,将第一张图像作为比较,并使两条线类似于正态分布?

【问题讨论】:

    标签: r normal-distribution data-visualization


    【解决方案1】:

    R 仅在 X (“Perikymata”)的某些增量处计算 Y 值(“概率密度”)。在原始图中,您的 X 值介于 50 到 225 之间,即 175 个单位的 Perikymata。在您的新绘图中,X 值的范围仅为 0 到 15,即 15 个单位的 Perikymata。通过确保计算出更多的 Y 值,您可以获得更平滑的图。例如,您可以得到 175 而不是 15。您可以使用:

    x <- seq(from=0, to=15, length.out=175)  
    

    【讨论】:

    • 太完美了。非常感谢!
    • 现在还有其他问题。如何计算两个正态分布的重叠面积?
    • 不客气,@antecessor。如果这解决了您的问题,您可能希望通过单击左侧投票总数下方的复选标记来接受它。由于您是新来的,您可能需要使用我们的tour,其中包含新用户的信息。
    • 这可能最好作为一个新问题提出,因为它与此没有直接关系。另外,重叠区域究竟是什么意思?您想知道黑色曲线下的黑色区域、红色曲线下的红色区域的比例,还是要在重叠区域上积分?另外,你问的是思路还是 R 代码?
    • 在重叠区域上整合。
    猜你喜欢
    • 2022-10-12
    • 2016-01-31
    • 1970-01-01
    • 2021-12-16
    • 2021-02-06
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多