R を使った棒グラフの作り方: エラーバーを追加する方法も

UB3/informatics/r/r_barplot

このページの最終更新日: 2023/07/22

  1. 基本: barplot 関数の使い方
  2. barplot 棒グラフにエラーバーを追加する

広告

基本: barplot 関数の使い方

組み込みデータセット chickwts を使ってみよう。これはさまざまな餌を与えられたニワトリの体重である。以下のような形のデータである。


barplot 関数はベクターでインプットするため、まずはここからデータを取り出す必要がある。長くなるので、スクリプトだけ以下にまとめておく。詳細は データフレームの取り扱い などを参照のこと。

棒グラフの作成に必要な、平均値と SD を horsebean と linseed のグループのみベクターとして保存する。

wt = chickwts$weight #体重のみを取り出す
horsebean_wt = wt[1:10]
linseed_wt = wt[11:22]
means_wt = c(mean(horsebean_wt), mean(linseed_wt))
errors_wt = c(sd(horsebean_wt), sd(linseed_wt))


これで準備ができたので、means_wt を棒グラフにして、errors_wt をエラーバーにするように barplot 関数を使う。barplot の必須パラメーターは boxplot(height) だけであり、height にはベクターが入る (2)。

barplot(means_wt)



これに以下のようなオプションを加えていくことができる。文献 2 にはさらに多くの例が載っている。

xlim, ylim

x 軸および y 軸の範囲を設定。ylim = c(0, 300) のように使用。

xlab, ylab

X 軸および Y 軸のラベルを追加。

names

グループの名前を X 軸に追加。names = c("horsebeam", "linseed") のように文字列のベクターを使う。

ラベルを縦にしたいときは、las=2 という記述を追加する。

以前は names.arg と書いていたが、R ver. 4.0.4 では動かなかった。boxplot でも使える。

col

バーの色を指定する。col = c("black", "white") のように文字列のベクターを使う。

width

バーの太さを指定。グループごとに指定するので、例えば群が 2 つあるなら width = c(1, 1) のように指定しなければならない。width = c(1, 1) のように、太さを変えることもできる。

cex.lab

cex.lab = 2 のようにして、X および Y 軸ラベルのフォントサイズを変更。

cex.axis

cex.axis = 2 のようにして、X および Y 軸目盛のフォントサイズを変更。names でグループを指定したときには、グループ名は軸ラベルでなく目盛なので、これで大きさを調整する。


box()

barplot のオプションではなく、独自の関数。棒グラフを四角で囲みたいときは、以下のように次の行に記載する。

barplot (height)
box(lty = 1)

barplot 棒グラフにエラーバーを追加する

あまり直感的ではないが、R barplot にエラーバーを追加するには、以下のような手順をとる。

  • barplot を変数に保存する。
  • arrows 関数で、その変数およびエラーバーの数値を指定する。

実際にやってみよう。エラーバーが収まりらないので、ylim で指定して Y 軸の値を少し大きくしている。

graph = barplot(means_wt, ylim = c(0, 300))
arrows(graph, means_wt+errors_wt, graph, means_wt-errors_wt, code = 3, angle = 90, lwd = 1, length = 0.1)



arrows の理屈がいまいちよくわからないので、あとでさらに整理したいが、現時点で言えるのは以下である。

  • グラフを格納した変数, 平均の変数 + SD の変数で、正方向のエラーバーを書く。
  • + を - にしてこれを繰り返すことで、負方向のエラーバーを書く。
  • lwd は line width で、線の太さ。angle は角度。

このページ も役に立つ。有意差マークをつける方法なども載っている。


広告

References

  1. Rによる棒グラフの描画. Link: Last access 2020/06/11.
  2. barplot function. Link: Last access 2020/06/11.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。