読者です 読者をやめる 読者になる 読者になる

ルビスコくん空を飛ぶ

大学院生(M2)の日記です.日記に加えてプログラム(R)のメモ書きもします.

Rのパッケージggplot2のグラフ2軸機能

R

ggplot2は,エレガントで効率的に図を生成してくれるRのパッケージである.最近はデフォルトのplot()関数よりもggplot2を使って図を描くことが多くなってきた.

だが,そんなggplot2にも弱点があるようで,y軸を二つに分けることができないらしい.どういうことかというと,たとえば日平均の気温と吸収光合成有効放射(APAR)の季節推移をひとつのグラフにプロットしたいとする.日平均のオーダーは0~25, APARのオーダーは0~600なので,APARの軸の尺度でプロットしてしまうと日平均の変化が小さくて見えなくなってしまう.

Rの標準的なplot()関数だと,コードは次のようになる.

plot(DS$No, DS$Temp30, type="l", col=2)
par(new=T)
plot(DS$No, DS$APAR, axes=F)
axis(4)

asis(4)と書けば,4番の軸(x軸が1番,左のy軸が2番…)にAPARの軸が割り当てられる.Noは日の番号で,Temp30が気温.

f:id:pam715:20160221172009p:plain

だが,このようなグラフはデフォルトのggplot2では描けないらしい.ggplotは強力なツールだと思っていたから残念である.

 

追記:ggplot2で2軸機能が使えるようになったみたいです.記事はこちら