【问题标题】:overlaying two normal distributions over two histograms on one plot in R在R中的一个图上覆盖两个直方图上的两个正态分布
【发布时间】:2020-08-26 19:02:10
【问题描述】:

我正在尝试在 R 中的同一图中绘制两个直方图上的两个正态分布。这是我希望它看起来像的示例:

这是我当前的代码,但我没有让第二个正态分布正确覆盖:

g = R_Hist$`AvgFeret,20-60`
m<-mean(g)
std<-sqrt(var(g))

h <- hist(g, breaks = 20, xlab="Average Feret Diameter", main = "Histogram of 60-100um beads", col=adjustcolor("red", alpha.f =0.2))
xfit <- seq(min(g), max(g), length = 680)
yfit <- dnorm(xfit, mean=mean(g), sd=sd(g))
yfit <- yfit*diff(h$mids[1:2]) * length(g)

lines(xfit, yfit, col = "red", lwd=2)

k = R_Hist$`AvgFeret,60-100`
ms <-mean(k)
stds <-sqrt(var(k))

j <- hist(k, breaks=20, add=TRUE, col = adjustcolor("blue", alpha.f = 0.3))
xfit <- seq(min(j), max(j), length = 314)
yfit <- dnorm(xfit, mean=mean(j), sd=sd(j))
yfit <- yfit*diff(j$mids[1:2]) * length(j)

lines(xfit, yfit, col="blue", lwd=2)

这是这段代码生成的图表:

我还没有研究如何重新调整轴的大小,因此我们也将不胜感激,但我相信我可以查一下!我应该为此应用程序使用 ggplot2 吗?如果是这样,您如何在该库中叠加正态曲线?

另外作为旁注,以下是绘制第二条(蓝色)线时产生的错误:

【问题讨论】:

    标签: r ggplot2 histogram normal-distribution


    【解决方案1】:

    要使它们具有相同的规模,最简单的方法可能是先运行hist() 以获取值。

    h <- hist(g, breaks = 20, plot = FALSE)
    j <- hist(k, breaks = 20, plot = FALSE)
    
    ymax <- max(c(h$counts, j$counts))
    xmin <- 0.9 * min(c(g, k))
    xmax <- 1.1 * max(c(g,k))
    

    然后您可以在第一次调用hist() 时简单地使用参数xlimylim

    h <- hist(g, breaks = 20,
              xlab="Average Feret Diameter",
              main = "Histogram of 60-100um beads",
              col=adjustcolor("red", alpha.f =0.2),
              xlim=c(xmin, xmax),
              ylim=c(0, ymax))
    

    第二行(蓝色)的错误是因为您没有将j(直方图对象)替换为k(原始值):

    xfit <- seq(min(k), max(k), length = 314)
    yfit <- dnorm(xfit, mean=mean(k), sd=sd(k))
    yfit <- yfit*diff(j$mids[1:2]) * length(k)
    

    至于ggplot2 方法,您可以在here 和其中链接的帖子中找到一个很好的答案。

    【讨论】:

    • 谢谢!!!这是这样的时刻之一,无论您看多少次问题,您仍然想出 22-2=11...
    猜你喜欢
    • 2013-04-07
    • 1970-01-01
    • 2020-12-31
    • 2020-01-19
    • 2019-10-06
    • 1970-01-01
    • 2013-01-25
    • 2015-01-10
    • 2018-08-02
    相关资源
    最近更新 更多