1. ホーム
  2. r

Rでヒストグラムに正規曲線を重ね合わせる

2023-10-12 03:35:58

質問

私はRでヒストグラムに正規曲線を重ねる方法をオンラインで見つけることができましたが、私はヒストグラムの通常の "頻度" Y軸を保持したいと思います。以下の2つのコードを見てください。2番目のコードでは、Y軸が"density"に置き換えられていることに注目してください。どうすれば、最初のプロットのように、Y軸を"frequency"として維持することができますか?

ボーナスとして。 密度曲線にSD領域(3SDまで)もマークしたいのですが、どうすればよいでしょうか。どうしたらいいでしょうか?試しに abline を試してみましたが、線がグラフの上まで伸びてしまい、醜い感じになってしまいます。

g = d$mydata
hist(g)

<イグ

g = d$mydata
m<-mean(g)
std<-sqrt(var(g))
hist(g, density=20, breaks=20, prob=TRUE, 
     xlab="x-variable", ylim=c(0, 2), 
     main="normal curve over histogram")
curve(dnorm(x, mean=m, sd=std), 
      col="darkblue", lwd=2, add=TRUE, yaxt="n")

<イグ

上の画像で、Y 軸が "密度" であることを見てください。これを"frequency"にしたいのです。

どのように解決するのですか?

私が見つけた簡単な方法を紹介します。

h <- hist(g, breaks = 10, density = 10,
          col = "lightgray", xlab = "Accuracy", main = "Overall") 
xfit <- seq(min(g), max(g), length = 40) 
yfit <- dnorm(xfit, mean = mean(g), sd = sd(g)) 
yfit <- yfit * diff(h$mids[1:2]) * length(g) 

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