微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在r中绘制具有相同均值但不同方差的正态分布

如何解决如何在r中绘制具有相同均值但不同方差的正态分布

我尝试绘制 6 个正态分布图来显示均值和方差对此类图的影响,我的代码如下:

    par(mfrow=c(3,2),bty = "n")     # 3 rows by 2 columns,turn off border
    mu <- c(6,8,6,8)       #designate the 6 mean values
    sigma <- c(3,3,2,1,1)        #designate the 6 sd values
    label <- c("(a)","(b)","(c)","(d)","(e)","(f)") #designate the 6 labels of the 6 figures
    for(i in 1:length(mu))          
    {
     mu.r <- mu[i]          
     sigma.r <- sigma[i]        
     lab.r <- label[i]      
     x <- seq((mu.r - 4*sigma.r),(mu.r + 4*sigma.r),len = 200)
    #designate the starting and ending value of mean
     plot(x,dnorm(x,mean = mu.r,sd = sigma.r),axes = F,type="l",lwd = 2,xlab = lab.r,ylab = "",main=paste0('mu=',mu.r,',sigma=',sigma.r),)
    axis(1,at = (mu.r - 4*sigma.r) : (mu.r + 4*sigma.r))
    abline(v = mu.r,col = "red",lwd = 2.5,lty = "longdash")
         
    }
    the figures generated is as follow:
   [enter image description here][1]


  [1]: https://i.stack.imgur.com/Z4czh.png

解决方法

你没有说到底是什么问题。我假设你所有的图表看起来都一样。发生这种情况是因为您根据方差设置了 x 轴,您需要将所有图形保留在相同的比例上以便进行比较。我只是在平均值周围设置了一个任意的 7 间隔:

for(i in 1:length(mu))          
{
  mu.r <- mu[i]          
  sigma.r <- sigma[i]        
  lab.r <- label[i]      
  x <- (mu.r - 7):(mu.r + 7)
  #designate the starting and ending value of mean
  plot(x,dnorm(x,mean = mu.r,sd = sigma.r),axes = F,type="l",lwd = 2,xlab = lab.r,ylab = "",main=paste0('mu=',mu.r,',sigma=',sigma.r),)
  axis(1,at = x)
  abline(v = mu.r,col = "red",lwd = 2.5,lty = "longdash")
  
}

输出:

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。