はじめに
Rの可視化パッケージであるggplot2
を用いてデータの可視化を行った。使うデータについてはこちらの記事を参考にして下さい。df というdata.frame型の変数に1000人分の性別、身長、体重、血液型のデータがある状況で可視化を行っていく。
データの中身の確認とパッケージの読み込み
まずはデータフレームの中身とデータ数を確認する。
コード
str(df)
出力
'data.frame': 1000 obs. of 4 variables:
$ SEX : chr "female" "male" "female" "male" ...
$ HEIGHT: num 160 171 161 175 157 ...
$ WEIGHT: num 47.3 65.7 55.4 86.6 54.3 ...
$ BLOOD : chr "O" "A" "O" "B" ...
想定通りのデータができてそう。次いでggplot2
の展開をする。
コード
library(ggplot2)
これで準備が整った。
散布図
コード
g <- ggplot(df, aes(x = WEIGHT, y = HEIGHT)) #プロットに使うデータの指定
g <- g + geom_point() #散布図を指定
plot(g) #プロット
男女で色分けした散布図は以下の通り。
コード
g <- ggplot(df, aes(x = WEIGHT, y = HEIGHT, color = SEX)) #グループとして性別を選択
g <- g + geom_point()
plot(g)
男女の違いで微妙に集団が分かれているのが分かる。
次は血液型によって形を変えつつ、軸の名前やタイトルをつけてみる。
コード
g <- ggplot(df, aes(x = WEIGHT, y = HEIGHT, color = SEX, shape = BLOOD))
g <- g + labs(title = "1000人のサンプルデータ",
subtitle = "身長、体重の相関",
caption = "ここに図のキャプションについてコメントする",
x = "体重 [kg]",
y = "身長 [cm]",
color = "性別",
shape = "血液型")
g <- g + geom_point()
plot(g)
ヒストグラム
散布図と同様に色分け、binの数の指定などをしていくと以下の様になる。
コード
g <- ggplot(df, aes(x = HEIGHT, fill = SEX))
g <- g + geom_histogram(bins = 30)
plot(g)
これを男女に分けたヒストグラムを作ると、以下の様になる。
コード
g <- ggplot(df, aes(x = HEIGHT))
g <- g + facet_grid(rows = vars(SEX))
g <- g + geom_histogram(bins = 30)
plot(g)
男女共に正規分布に従っているのが分かる。
箱ひげ図
血液型に対する体重の箱ひげ図を作ってみる。
コード
g <- ggplot(df, aes(x = BLOOD, y = WEIGHT))
g <- g + geom_boxplot()
plot(g)
もちろん血液型で分布に差が無いことが分かる。
おわりに
ggplot2
でのデータの可視化を行ってみた。数行のコマンドで非常にきれいな図が作れるので、これからは可視化には積極的にggplot2
を使って行きたいと思う。