【R】散布図を描く方法
散布図は、2つの変数の相関関係を表現する方法です。
ごく基本的な作図ですが、度数分布図や箱ひげ図などと並んで良く使われる手法だと思います。
解析に使うデータ
- 以下のデータは、ある山の東側(east)と西側(west)の様々な標高で測定した樹高(m)です。
- direction列:斜面の方角(east/west)
- altitude列:測定地点の標高
- tree_height列:測定された樹高
tree_height.csv
direction,altitude,tree_height
east,260,12.1
east,320,12.3
east,390,8.2
east,430,9.8
east,470,7.9
east,500,6
west,280,15.3
west,330,11.9
west,380,11.2
west,410,9.3
west,440,7.9
west,500,6.8
データの読み込み
Rのコンソール
> tree_height <- read.table("C:\\tree_height.csv", header=TRUE, encoding="CP932", sep=",")
> tree_height
direction altitude tree_height
1 east 260 12.1
2 east 320 12.3
3 east 390 8.2
4 east 430 9.8
5 east 470 7.9
6 east 500 6.0
7 west 280 15.3
8 west 330 11.9
9 west 380 11.2
10 west 410 9.3
11 west 440 7.9
12 west 500 6.8
単純な散布図の描画
- plot(横軸のデータ, 縦軸のデータ)とすることで、簡単に散布図を作成できます。
- 散布図として表現すると、「標高が上がるにつれて、樹高が低くなっている」ということが一目で分かります。
Rのコンソール
> plot(tree_height$altitude, tree_height$tree_height)
- direction列:斜面の方角(east/west)
- altitude列:測定地点の標高
- tree_height列:測定された樹高
tree_height.csv
direction,altitude,tree_height
east,260,12.1
east,320,12.3
east,390,8.2
east,430,9.8
east,470,7.9
east,500,6
west,280,15.3
west,330,11.9
west,380,11.2
west,410,9.3
west,440,7.9
west,500,6.8
Rのコンソール
> tree_height <- read.table("C:\\tree_height.csv", header=TRUE, encoding="CP932", sep=",")
> tree_height
direction altitude tree_height
1 east 260 12.1
2 east 320 12.3
3 east 390 8.2
4 east 430 9.8
5 east 470 7.9
6 east 500 6.0
7 west 280 15.3
8 west 330 11.9
9 west 380 11.2
10 west 410 9.3
11 west 440 7.9
12 west 500 6.8
単純な散布図の描画
- plot(横軸のデータ, 縦軸のデータ)とすることで、簡単に散布図を作成できます。
- 散布図として表現すると、「標高が上がるにつれて、樹高が低くなっている」ということが一目で分かります。
Rのコンソール
> plot(tree_height$altitude, tree_height$tree_height)
Rのコンソール
> plot(tree_height$altitude, tree_height$tree_height)
散布図のタイトルと軸のラベルを指定する
- 以下のようにパラメーターを追加することで、タイトルと軸のラベルを指定して散布図を描画することができます。
- main:グラフのタイトル
- xlab:横軸のラベル
- ylab:縦軸のラベル
Rのコンソール
> plot(tree_height$altitude, tree_height$tree_height, main="標高と樹高との関係", xlab="標高(m)", ylab="樹高(m)")
- main:グラフのタイトル
- xlab:横軸のラベル
- ylab:縦軸のラベル
Rのコンソール
> plot(tree_height$altitude, tree_height$tree_height, main="標高と樹高との関係", xlab="標高(m)", ylab="樹高(m)")
グループごとに異なるマーカーで散布図を描画する
- 「東斜面のデータを白丸(〇)、西斜面のデータを黒丸(●)」というように、データのグループごとに異なるマーカーで表現する時は、以下のように「最初は散布図の枠だけ作っておく」というのがポイントです。
- 最後に凡例を表示させる必要がありますが、凡例は散布図の描画範囲(枠内)だけでなく、その外側に表示させることもできるようです。
- 外側に表示させるのは、実際にやったことがないので分かりません...
Rのコンソール
> # type="n"を指定して、散布図の「枠」だけを作成する
> plot(tree_height$altitude, tree_height$tree_height, main="標高と樹高との関係", xlab="標高(m)", ylab="樹高(m)", type="n")
> # 東斜面のデータを白丸(〇)で描画する
> points(tree_height$altitude[tree_height$direction == "east"], tree_height$tree_height[tree_height$direction == "east"], pch = 1)
> # 西斜面のデータを黒丸(●)で描画する
> points(tree_height$altitude[tree_height$direction == "west"], tree_height$tree_height[tree_height$direction == "west"], pch = 16)
> # 散布図の右上に凡例を表示する。
> legend("topright", pch = c(1, 16), legend = levels(tree_height$direction))
- 外側に表示させるのは、実際にやったことがないので分かりません...
Rのコンソール
> # type="n"を指定して、散布図の「枠」だけを作成する
> plot(tree_height$altitude, tree_height$tree_height, main="標高と樹高との関係", xlab="標高(m)", ylab="樹高(m)", type="n")
> # 東斜面のデータを白丸(〇)で描画する
> points(tree_height$altitude[tree_height$direction == "east"], tree_height$tree_height[tree_height$direction == "east"], pch = 1)
> # 西斜面のデータを黒丸(●)で描画する
> points(tree_height$altitude[tree_height$direction == "west"], tree_height$tree_height[tree_height$direction == "west"], pch = 16)
> # 散布図の右上に凡例を表示する。
> legend("topright", pch = c(1, 16), legend = levels(tree_height$direction))
Author And Source
この問題について(【R】散布図を描く方法), 我々は、より多くの情報をここで見つけました https://qiita.com/nkojima/items/c008adec58c7834edfc1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .