バイオインフォ道場、くまぞうです。
データを理解する方法の1つに「グラフ」があります。詳細なデータをまとめた表に比べると「詳細さ」は劣りますが、データの全体像を理解しやすくなります。そして、目的に応じたグラフを使うことが大事です。Rを使って、色んなグラフを描画してみましょう。今回は、「ヒストグラム」です。
スポンサーリンク
ヒストグラム
特長
ヒストグラムは、データの頻度分布を表すグラフです。横軸は区間・階級、縦軸は区間内の頻度や相対頻度を表します。軸のスケールによって、印象が変わるので、適切なスケールを決めることが大事です。
グラフの描き方
組み込みデータセットのirisを使用します。実際にグラフを書く場合は、ファイルから読み込んだデータを使うことが多いので、一度ファイルにデータを保存してから使います。Rでグラフを描くときは、histを使います。
> iris > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa > summary(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300 Median :5.800 Median :3.000 Median :4.350 Median :1.300 Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800 Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500 Species setosa :50 versicolor:50 virginica :50 > write.table(iris, "iris.txt", quote=F, sep="\t") > data <- read.delim("iris.txt") > png("hist1.png") > hist(data$Sepal.Length) > dev.off() > png("hist2.png") > hist(data$Sepal.Length, breaks=c(0,2,4,6,8,10))) #breaks=seq(0,10,2)でも良い > dev.off()
グラフの例
hist1
hist2
グラフ描画について
組込みデータ「iris」をグラフ表示しました。ファイルに保存したデータを、改めてread.delimで読込み、data$Sepal.Lengthで表示データを指定しました。head及び、summaryでデータの一部と概要を示しました。hist1ではデフォルトのSturges階級数による区間表示、hist2ではbreaksを指定してカスタマイズ区間表示を行いました。区間の指定について、breaksに配列を直接指定しましたが、seq(from, to, by)で配列を生成&指定するとより汎用的で便利かもしれません。
スポンサーリンク