R 使い方 散布図 グラフの描き方

バイオインフォ道場、くまぞうです。

データを理解する方法の1つに「グラフ」があります。詳細なデータをまとめた表に比べると「詳細さ」は劣りますが、データの全体像を理解しやすくなります。そして、目的に応じたグラフを使うことが大事です。Rを使って、色んなグラフを描画してみましょう。今回は、「散布図」です。

スポンサーリンク



散布図

特長

散布図は、2つの異なる変数を連結し、それら変数の関係性を示します。グラフ上の各点はxy一組の値です。一方が横軸またはx軸に示され、他方が縦軸またはy軸に示されます。演算子「~(チルダ)」を使ってモデル式を与えます。

グラフの描き方

組み込みデータセットの「iris」を使用します。Rでグラフを描くときは、plotを使います。「Sepal.LengthとPetal.Lengthの関係性」をみたいので、モデル式「Sepal.Length ~ Petal.Length」を与えて散布図を描画します。

> str(iris)
'data.frame':	150 obs. of  5 variables:
 $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
 $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
 $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
 $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
 $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 ...

> png("plot1.png")
> plot(Sepal.Length ~ Petal.Length, pch=as.numeric(Species), data=iris)
> dev.off()

> png("plot2.png")
> plot(Sepal.Length ~ Petal.Length, pch=as.numeric(Species), data=data_iris,
       col = ifelse((Sepal.Length/Petal.Length>1.5), "red", "black"))
> dev.off()

グラフの例

plot1

plot1

plot2

plot2

グラフ描画について

組込みデータ「iris」をグラフ表示しました。plotに、モデル式「Sepal.Length ~ Petal.Length」を与えて散布図を描画します。水準が”setosa”,”versicolor”,”virginica”の3つ存在するので、plotのオプション「pch」に水準別のマークを指定しました。plot2では、xyの関係性に条件を与え、条件を満たすものと満たさないもので色分けを行いました。

スポンサーリンク