グラフの選び方:棒グラフか? 折れ線グラフか?
データを適切に解釈するには、見やすい、分かりやすいグラフを描くことが必要です。自分の好みでグラフを作っていると、誤った結論に陥ることもあります。
二つのグラフがどんなものに向いているのかを知っておけば、適切にグラフを使い分けることができるでしょう。
棒グラフ
- 横軸には連続データ(時間、投与量など)または、非連続データ(カテゴリ、雌雄、条件など)をとる。
- 棒の面積で各値を量的に判断することが出来る。
- 積み上げ棒グラフ:各項目の割合と全体量の変化を見ることが出来る。
- 時系列などの連続データにおいて、長期的な傾向を掴むのに適している。短期的な変化を比較するのには向いていない。
- 縦軸は省略せず、全体量を表示する。
- よく使われる例
- 年・月ごとの収入・支出の変化、実験条件による効果の違い、毎年の収穫量の変化、雨量や積雪量、候補者ごとの得票数の違い、など。どれだけ多いか、少ないかを見たいときに使う。
折れ線グラフ
- 横軸には連続データ(時間、日時、年、投与量など)を取る。
- 非連続データ(カテゴリ、雌雄、条件など)を横軸に使わない。*1
- 線の傾きにより、各値の連続的な変化を追うことが出来る。とくに短期的な変化を追うのに向いている。
- 複数項目の折れ線グラフは、各項目の順位や相対的な変化を見ることが出来る。
- 縦軸は省略しないべきだが、必要であれば変化が見やすい範囲に拡大してもよい。
- よく使われる例
- 毎日の体重の変化、月ごとの気温の変化、時間ごとの反応数の移り変わり、毎分ごとの視聴率、など。直前に比べて上がったか、下がったか、が見たいときに使う。
同じデータを用いた二つのグラフ例
- 棒グラフ
- Con群とTest群の反応の量的な違いが見やすい。
- Test群はCon群の2倍以上反応することが分かる。
- 投与量における各群の変化は上昇していることは分かるが、投与量ごと変化の違いは分かりにくい。
- Con群とTest群の反応の量的な違いが見やすい。
- 折れ線グラフ
- Con群とTest群の投与量に対する反応の変化の違いが見やすい。
- Test群では10から20の変化のほうが20から30の変化より大きい。*2
- 群間の量的な違いは分かりにくい。
- Con群とTest群の投与量に対する反応の変化の違いが見やすい。
- この場合、投与量ごとの効果の変化よりも、群間の効果の違いが見たいので、棒グラフを選ぶ。
group<-c(10,20,30) #投与量 m.Con<-c(0.079,0.102,0.146) #Con群 平均値 sd.Con<-c(0.022,0.051,0.026) #Con群 SD m.Test<-c(0.12,0.25,0.34) #Test群 平均値 sd.Test<-c(0.055,0.031,0.026) #Test群 SD yRoof=round(max(m.Con+sd.Con, m.Test+sd.Test)*1.2, 1) yFloor=round(min(m.Con-sd.Con, m.Test-sd.Test)*1.2, 2) dev.new(width=800, height=400) par(mfcol=c(1,2)) #棒グラフ graph1<-barplot(rbind(m.Con, m.Test),beside=T, xlab="Dose of drug (mg/kg)",ylab="Response", names=group, ylim=c(0,yRoof), col=c(0,8)) arrows(graph1,rbind(m.Con,m.Test), graph1, rbind(m.Con+sd.Con,m.Test+sd.Test), angle=90, length=0.1,lwd=2) arrows(graph1,rbind(m.Con,m.Test), graph1,rbind(m.Con-sd.Con, m.Test-sd.Test), angle=90,length=0.1,lwd=2) axis(side=1, c(mean(graph1[,1]),mean(graph1[,2]),mean(graph1[,3])), labels=F) legend("topleft", c("Con","Test"), fill=c(0,8)) title("Bar graph with two factors") #折れ線グラフ matplot(group,cbind(m.Con,m.Test),type="b",ylim=c(yFloor,yRoof), lty=1,col=c(1,8), cex=2, pch=17, xlab="Dose of drug (mg/kg)",ylab="Response") arrows(group,cbind(m.Con,m.Test),group,cbind(m.Con+sd.Con,m.Test+sd.Test), angle=90,length=0.1,lwd=2,col=c(1,1,1,8,8,8)) arrows(group,cbind(m.Con,m.Test),group,cbind(m.Con-sd.Con,m.Test-sd.Test), angle=90,length=0.1,lwd=2,col=c(1,1,1,8,8,8)) legend("topleft",legend=c("Con","Test"),pch=17,col=c(1,8),cex=1.3) title("Line graph with two factors")
どっちのグラフにするか判別チャート
- 横軸にとるデータは
- 非連続データである:棒グラフ
- 連続データである(大小があり、数直線状に並べられるもの)
- データから読み取りたいのは
- 量的、長期的な変化:棒グラフ
- 短期的な変化:折れ線グラフ
あくまで目安です。データからどんな情報を読み取りたいのか考えて選ぶことが大事です。