Symfoware

Symfowareについての考察blog

R言語 棒グラフと折れ線グラフの組み合わせ

R言語で、棒グラフと折れ線グラフを同じ領域に描画してみます。



単純な組み合わせ



まず、barplotで棒グラフを描画。
この時の戻り値が、バーを描画したx軸の座標のベクトル。

このx軸のベクトルを使用して、折れ線グラフを描画する。

・・・という流れになります。



  1. png("image.png", width = 500, height = 300, pointsize = 12, bg = "white")
  2. # 軸表示用に余白を開ける
  3. # ベクトルの数値は、、下、左、上、右の順
  4. par(mar=c(4, 4, 2, 4))
  5. # 棒グラフのデータ
  6. x <- 1:5
  7. # 棒グラフの項目タイトル
  8. label <- c("1月", "2月", "3月", "4月", "5月")
  9. # 棒グラフを表示
  10. # 戻り値は、各バーの座標位置
  11. barx <- barplot(x, xlim=c(0,6), ylim=c(0, 6), names.arg=label)
  12. # グラフの上書きしてい
  13. par(new=T)
  14. # 折れ線グラフのデータ
  15. y <- c(2,4,6,8,10)
  16. # ylimを棒グラフと揃える
  17. # ラベルや座標軸は非表示に
  18. plot(barx, y, xlim=c(0,6), type="o", axes=F, xlab="", ylab="")
  19. # 折れ線グラのy軸を右側に表示
  20. axis(side=4)
  21. # グラフを囲む
  22. box()
  23. graphics.off()




出来ました。

483_01.png





並べた棒グラフとの組み合わせ



beside=Tを指定して、棒グラフを並べて表示している場合、
各々の棒グラフのx座標が帰ってきます。

前後を足して2で割り、そのベクトルデータを折れ線グラフのx座標に採用します。

わかりやすさのため、ベタにプログラムを書いています。


  1. png("image.png", width = 500, height = 300, pointsize = 12, bg = "white")
  2. # 軸表示用に余白を開ける
  3. # ベクトルの数値は、、下、左、上、右の順
  4. par(mar=c(4, 4, 2, 4))
  5. # 棒グラフのデータ
  6. x <- 1:10
  7. m <- matrix(x, nrow=2)
  8. # 棒グラフの項目タイトル
  9. label <- c("1月", "2月", "3月", "4月", "5月")
  10. # 棒グラフを表示
  11. # 戻り値は、各バーの座標位置
  12. barx <- barplot(
  13.     m, beside=T, col=c("red", "blue"), space=c(0.1, 0.5),
  14.     xlim=c(0,14), ylim=c(0, 11), names.arg=label)
  15. # 1番目と2番目の棒グラフの真ん中をx軸として採用
  16. barx_m <- c(
  17.     (barx[1] + barx[2]) /2,
  18.     (barx[3] + barx[4]) /2,
  19.     (barx[5] + barx[6]) /2,
  20.     (barx[7] + barx[8]) /2,
  21.     (barx[9] + barx[10]) /2
  22.     )
  23. # グラフの上書きしてい
  24. par(new=T)
  25. # 折れ線グラフのデータ
  26. y <- c(2,4,6,8,10)
  27. # ylimを棒グラフと揃える
  28. # ラベルや座標軸は非表示に
  29. plot(barx_m, y, xlim=c(0,14), ylim=c(0, 10), type="o", axes=F, xlab="", ylab="")
  30. # 折れ線グラのy軸を右側に表示
  31. axis(side=4)
  32. # グラフを囲む
  33. box()
  34. graphics.off()




できました。

483_02.png




【参考URL】

Rいろは・第三部:グラフ作成編

http://www.is.titech.ac.jp/~mase/mase/html.jp/temp/axis.jp.html

R言語 掲載記事のまとめ
関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/10/12(日) 23:32:25|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<R言語 ファイルからデータを読み込み、グラフを描画する | ホーム | R言語 棒グラフを描画する(通常、列挙、積み上げ、割合)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1509-a130f3dd
この記事にトラックバックする(FC2ブログユーザー)