Articles

R ヒストグラム

Posted on

この記事では、Rプログラミングでヒストグラムを作成するための hist() 関数の使い方を、多数の例を参考にして学びます。

ヒストグラムは、Rプログラミング言語のhist()関数を使って作成することができます。

組み込みのデータセットであるairqualityを使用してみましょう。

> str(airquality)'data.frame':153 obs. of 6 variables:$ Ozone : int 41 36 12 18 NA 28 23 19 8 NA ...$ Solar.R: int 190 118 149 313 NA NA 299 99 19 194 ...$ Wind : num 7.4 8 12.6 11.5 14.3 14.9 8.6 13.8 20.1 8.6 ...$ Temp : int 67 72 74 62 56 66 65 59 61 69 ...$ Month : int 5 5 5 5 5 5 5 5 5 5 ...$ Day : int 1 2 3 4 5 6 7 8 9 10 ...

154件の観測値を持つ華氏(degree Fahrenheit)の温度パラメータを使用します。

例1:シンプルなヒストグラム

Temperature <- airquality$Temphist(Temperature)

Rプログラミングでのシンプルなヒストグラム

上では、等間隔で改行された9つのセルがあることがわかります。

プロットの見え方をコントロールするために、追加のパラメータを渡すことができます。 これらについては、ヘルプセクションの?histをご覧ください。

よく使われるものとしては、mainxlabylabxlimylimcolで色を指定するなどです。

さらに、引数のfreq=FALSEを使えば、頻度の代わりに確率分布を得ることができます。

例2:パラメータを追加したヒストグラム

# histogram with added parametershist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="darkmagenta",freq=FALSE)

Rで色などのパラメータを指定してヒストグラムを作成します。

Y軸のラベルが頻度ではなく密度になっていることに注意してください。

hist()の戻り値

hist() 関数は、6つのコンポーネントを持つリストを返します。

> h <- hist(Temperature)> h$breaks 55 60 65 70 75 80 85 90 95 100$counts 8 10 15 19 33 34 20 12 2$density 0.010457516 0.013071895 0.019607843 0.024836601 0.043137255 0.044444444 0.026143791 0.015686275 0.002614379$mids 57.5 62.5 67.5 72.5 77.5 82.5 87.5 92.5 97.5$xname "Temperature"$equidist TRUEattr(,"class") "histogram"

クラス histogram のオブジェクトが返されていることがわかります。

  • breaks 区切りのある場所
  • counts そのセルに入るオブザベーションの数
  • density セルの密度
  • mids– セルの中点、

  • xname– x 引数名、
  • equidist– 区切りが等間隔であるかどうかを示す論理値。

これらの値を使ってさらに処理を行うことができます。

例えば、次の例では、戻り値を使って、text()関数を使って各セルの上にカウントを配置しています。

例 3: ヒストグラムの戻り値をtext()を使ったラベルに使用する

h <- hist(Temperature,ylim=c(0,40))text(h$mids,h$counts,labels=h$counts, adj=c(0.5, -0.5))

ヒストグラムにテキストの戻り値を使用する

区切りの数を定義する

breaksの引数で、ヒストグラムに必要なセルの数を指定できます。

Rはこの提案を考慮して、最適なセル数を計算します。 以下は、同じデータでセルの数を変えた2つのヒストグラムです。

例 4: 異なるブレイクを持つヒストグラム

hist(Temperature, breaks=4, main="With breaks=4")hist(Temperature, breaks=20, main="With breaks=20")

R Histogram With Break

上の図では、実際にプロットされたセルの数が指定した数よりも多いことがわかります。 これにより、不均等な間隔でヒストグラムをプロットすることが可能になります。

例 5: 不均等な幅のヒストグラム

hist(Temperature,main="Maximum daily temperature at La Guardia Airport",xlab="Temperature in degrees Fahrenheit",xlim=c(50,100),col="chocolate",border="brown",breaks=c(55,60,70,75,80,100))

異なる幅のRヒストグラム

となります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です