Rで中学校・高校のグラフを作る
統計ソフト R では以下のグラフを作ることが難しいです.
- 箱ひげ図(四分位数を教科書の定義で計算したバージョン)
- 相対度数のヒストグラム
これらを行うことができる関数を作成しました.
使い方の例
箱ひげ図
source("http://www.math.chuo-u.ac.jp/~sakaori/statedu.R") data(iris) hako(Sepal.Width~Species, data=iris)
hako
関数が, 中高で習う箱ひげ図を描く関数です. R 標準の boxplot 関数から,
- 四分位数を中高で学ぶ計算法に書き換え
- ひげを最小値と最大値まで延ばす
という変更を施しています. それ以外は boxplot 関数と同じ使い方ができます. 例えば...
- 横向きにするなら
horizontal=TRUE
とオプションを付ける Sepal.Width~Species
のような formula(量的変数~グループ分けしたい質的変数)だけでなく, 行列を投げ込むこともできます
などです.
なお, 四分位数を計算する関数として gosu
(五数要約の意味)も作っていますので, gosu(iris$Sepal.Length)
のようにすると四分位数が計算できます.
相対度数のヒストグラム
source("http://www.math.chuo-u.ac.jp/~sakaori/statedu.R") data(iris) histo(iris$Sepal.Width, type="percent")
histo
関数(通常の hist 関数に小文字のオーがついています)は、lattice
パッケージの histogram
関数を使いやすくしたものです. type="percent"
とすると相対度数のヒストグラムになります. type="count"
で度数、type="density"
で密度のヒストグラム(総面積が1)です. lattice
パッケージのインストールが必要なのでご注意ください.
histogram
関数との違いは,
- 色がビビッドで見にくいのをグレーに直した
- 「◯以上◯未満」という階級のとり方をデフォルトにした(
right=FALSE
が標準になっています) - formula を入れることも可能で, formula の書き方を箱ひげ図と統一
といったところです.
例えば histogram
関数では ~Sepal.Width|Species
のような formula を入れると, 上の箱ひげ図と同じように層別したヒストグラムになるのですが, これを上の箱ひげ図と同じSepal.Width~Species
で実現できるようにしました.
histogram
関数特有の注意点として, breaks
(階級の個数, あるいは階級の端点)を指定しないで描くと, スタージェスの公式に従って階級分けがなされ, その階級の端点はキリのよい数字にはなりません. breaks=8
などのオプションを付けると, キリのよいところで「ほぼ階級数8で」描いてくれます(階級数がちょうど8になるとは限りません. キリのよい数字になることが優先されます).