Rで散布図を描く(ggplotなし)

 以下のデータを視覚化する。これは、相関分析で使ったデータと同じ。今回のデータは計画行列ではない。架空のデータで、a列が握力、b列が垂直飛びの結果だとする。

ab
30.156.7
27.548.3
32.857.1
29.652.2
30.653.4
32.157.7
23.349.2
29.456.9
28.256.6
28.853.5
25.754.2
30.251
29.352.8
2853.9
25.851.3
30.954.9
32.557.4
32.258.6
24.453.6
30.755.1

 このデータのa列をx軸とb列をy軸に割り当てて散布図を描いてみる。

 なお、学会発表や論文のために作図する場合は、より自由度が高く、美しい作図が可能なggplotパッケージを用いた方が良い。

 data1としてデータを読みこんでいる。

 コードは以下の通り。plotが関数の名前で () 内に必要な情報を入力していく。最初にx軸(data1$a)、そのあとにy軸(data1$b)を指定する。

plot(data1$a, data1$b)


 x軸とy軸のラベルを任意に変更する場合にはxlab=、ylab=で指定してやればよい。

plot(data1$a, data1$b, xlab = "a", ylab = "b")

 ここからは、ちょっと難しいので、初級っぽくないので流しても良い。

 複数の散布図を重ねることもできる。以下のように2つのグループの握力と垂直飛びのデータがあったとして、それを散布図で重ねて表示したいとする。

abgroup
30.156.7group_1
27.548.3group_1
32.857.1group_1
29.652.2group_1
30.653.4group_1
32.157.7group_1
23.349.2group_1
29.456.9group_1
28.256.6group_1
28.853.5group_1
25.754.2group_1
30.251group_1
29.352.8group_1
2853.9group_1
25.851.3group_1
30.954.9group_1
32.557.4group_1
32.258.6group_1
24.453.6group_1
30.755.1group_1
37.262.2group_2
3149.7group_2
35.858.4group_2
3054.3group_2
32.253group_2
32.359.7group_2
23.952.5group_2
33.258.5group_2
31.460.1group_2
29.353.3group_2
2853.7group_2
34.150.8group_2
29.656.4group_2
30.656.4group_2
28.554.3group_2
34.657.3group_2
35.956.6group_2
33.860.4group_2
2653.6group_2
31.355.6group_2

 コードは以下の通り。上のデータをdata2として読み込んでいる。ドットに色を付けて区別させたいので、色がわかりやすいドットの形に変更する。pch=で変更する。19番で塗りつぶしのドットを出力できる。また、col=で色分けを指定する。factor()として色分けしたい列の名前を入れる。

plot(data2$a, data2$b, xlab = "a", ylab = "b", pch = 19, col = factor(data2$group))

ただし、これだとどの色がどのグループかわからない。そこで、plot関数を実行した後に、legends関数を実行する。コードと図は以下の通り。 () 内は最初に凡例を表示する場所、凡例として表示するデータ、凡例に表示するドットの形、凡例の色、を指定していく。表示場所は左上にしたいので"topleft"とする。凡例を表示するためにはlegend=levels(factor())と入力し、factorの () 内に列名data2$groupを指定する。pch=は19番としてドットの形を指定する。col=factor()で色を指定する列data2$groupを指定する(ただし、factorlevelsで囲む)。

plot(data2$a, data2$b, xlab = "a", ylab = "b", pch = 19, col = factor(data2$group))
legend("topleft", legend = levels(factor(data2$group)), pch = 19, col = factor(levels(factor(data2$group))))



コメント