関数グラフの下に色をつける方法
今回はRを用いてベル型分布(正規分布)などの関数のグラフの下に色をつける方法を紹介します。
連続型の確率密度関数のグラフはcurve()関数を用いて、下記のように描くことができます。
curve(dnorm(x,171,10),xlim=c(140,210))
これは成人日本人男性の身長の分布を近似した正規分布の確率密度関数です。dnorm(x,171,10)は平均値171、標準偏差10の正規分布という意味です。さらにxlim=c(140,210)を利用してグラフの範囲をxが140から210になるように指定しています。
ここで例えば、以下のようにこのグラフの160cmから180cmの部分の下側に色をつけるのにはどうすればよいでしょうか?
•コード
#関数のグラフを描く。 curve(dnorm(x,171,10),xlim=c(140,210)) #指定の部分に色をつける。 cord.x=c(160,seq(160,180,length=100),180) cord.y=c(0,dnorm(seq(160,180,length=100),171,10),0) polygon(cord.x,cord.y,col='skyblue') #グラフの下側に直線を引く。 abline(h=0)
上記のように、polygon関数を用いて指定の部分に色をつけることができます。なお、cord.xとcord.yは色をつける部分を指定した変数ですので、別に違う名前でも構いません。色はスカイブルー(skyblue)に指定していますが、”red”でも”yellow”でも好きな色を指定しましょう。
なお、このグラフは確率密度関数、確率質量関数とは何か?で紹介されているものです。
以下がタイトルも含めたグラフとコードです。
•コード
#日本語フォントの指定。 par(family = "HiraKakuProN-W3") #関数のグラフとタイトル。 curve(dnorm(x,171,10),xlim=c(140,210), main="日本人成人男性の身長の分布", xlab="身長", ylab="") #指定の部分に色を付ける。 cord.x=c(160,seq(160,180,length=100),180) cord.y=c(0,dnorm(seq(160,180,length=100),171,10),0) polygon(cord.x,cord.y,col='skyblue') abline(h=0)