ヒストグラム ~Rプログラミング~【Statistics with “R”- histogram】

ヒストグラム ~Rプログラミング~【Statistics with “R”- histogram】

トップページに戻る

コード意味
hist(x)xのヒストグラムを描く

ヒストグラムとは,縦軸に度数横軸に階級をとったグラフで,1次元データの分布状況を確認するために用いられる。

しっかり書くと以下のように表現できる。

ヒストグラム
データ\(x_1,…,x_n\)のうち,最大値を\(x_{max}\)最小値を\(x_{min}\)とする。 \( k \)を自然数とする。 \(a_0,…,a_k\)を\(a_0<x_{min}\)と\(x_{max}<a_k\)を満たすように定める。 \(a_0,…,a_k\)によって,区間\([a_0,a_k)\)を\([a_0,a_1),~[a_1,a_2),…,[a_k-1,a_k)\)に分割する。 \(f_i\)を区間\([a_i-1,a_i)\)に含まれるデータの数とする。すると、すべての区間に,区間\([a_i-1,a_i)\)とデータ数\(f_i\)の組が定まる。この組によって描かれる棒グラフをヒストグラムという。

大雑把に言えば,区間(階級)を区切って,区切られた区間ごとにどれだけのデータがあるかを数えて棒グラフに表したものである。

Rではhist( )関数を用いてヒストグラムを書くことが出来る。

階級の区切り方にはいろいろな方法が提案されていて,hist( )関数もそれに基づいているので,細かく設定しなくても自動的にヒストグラムが描ける。

x <- c(4,1,4,6,3,4,2,6,5,5,5,7,8,6,6,3,5,4,3,7,6)
hist(x)

hist関数の詳しい使い方

hist( )関数は描画のカスタマイズが可能だが,よく使うものに以下のようなパラメタがある。

hist(x,main, xlab, ylab, breaks, freq, col, border)

xヒストグラムを描きたいベクトル
mainヒストグラムのタイトル(文字列)
xlab横軸のラベル名(文字列)
ylab縦軸のラベル名(文字列)
breaks階級の区切り(ベクトル)
freq縦軸を度数(=T)にするのか割合(=F)にするのかの選択
colヒストグラムの塗りつぶし色
borderヒストグラムの境界線の色
xlimヒストグラムの横軸表示範囲
ylimヒストグラムの縦軸表示範囲

たとえば

hist(x,main="タイトル", xlab="x軸", ylab="y軸", breaks=c(1,2,3,4,5,6,7,8), freq=F, col="green", border="blue")
を実行すると以下のようなヒストグラムを得ることが出来る。

ヒストグラムの重ね合わせ

hist( )を使ってヒストグラムを描いた直後にpar(new=T)を実行すると,すでに描いたヒストグラムの上から,重ね合わせて描画することが出来る。

重ね合わせをするときには,横軸や縦軸,タイトルがずれないように,main,xlab,ylab,xlim,ylimなどを調整する必要がある。

x <- c(4,1,4,6,3,4,2,6,5,5,5,7,8,6,6,3,5,4,3,7,6)
y <- c(4,4,6,3,4,6,5,6,5,5,7,8,6,6,3,5,4,7,6)
hist(x)
hist(x,main="", xlab="", ylab="", breaks=c(1,2,3,4,5,6,7,8),
     freq=F, col=rgb(1,0,0,alpha=0.2), border="blue",
     ylim=c(0,0.4),xlim=c(0,10))
par(new=T)
hist(y,main="タイトル", xlab="x軸", ylab="y軸", breaks=c(1,2,3,4,5,6,7,8),
     freq=F, col=rgb(0,1,0,alpha=0.2), border="blue",
     ylim=c(0,0.4),xlim=c(0,10))
legend("topright",legend=c("x","y"),col=c(rgb(1,0,0,alpha=0.2),rgb(0,1,0,alpha=0.2)),pch=16)

ここでrgb(0,1,0,alpha=0.2)という命令があるが、これは

rgb(赤の色彩強度, 緑の色彩強度, 青の色彩強度, alpha=透過率)によって色と透過率を決定する関数である。色彩強度と透過率は0から1の間で選択できる。

コードを実行すると、以下のようなヒストグラムが表示される。

ここで

legend("topright",legend=c("x","y"),col=c(rgb(1,0,0,alpha=0.2),rgb(0,1,0,alpha=0.2)),pch=16)

は図右上の凡例の表示に使われる。

legend("表示する場所",legend=変数名,col=c(変数ごとの描画色),pch=表示の仕方の番号)

というコードで凡例を表示できる。

コード凡例を表示する場所
"topright"右上
"topleft"左上
"bottomright"右下
"bottomleft"左下

関連するトピック

コメントを残す

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