1:グラフの描画領域を同じ大きさに指定して揃える方法
dev.new()での括弧の中にサイズを指定するパラメータを入力します。グラフの周りのウインドウの幅と高さをインチ単位で指定することで大きさを揃えることができます。グラフのサイズもおおよそ揃います。
dev.new(width=3, height=4)
par(mar = c(4, 4, 2, 1)) # グラフの周囲の余白の広さを行数で指定.下,左,上,右の順.
par(mgp = c(4, 0.55, 0)) #説明,ラベル,軸の位置を行で指定.
par(oma = c(0, 0,0, 0)) # 余白の広さを行数で指定.下,左,上,右の順.
plot(iris[,2],iris[,1]/1,las=1)
※mar,mgp,omaは描画領域のギリギリまでグラフを描かせるための指定数値なので指定しなくても大きさは揃います。この方法の場合には、グラフそのもののサイズは指定できていません。
2:グラフのサイズを指定する方法. pinで横、縦のサイズをインチ単位で指定します。
par(pin = c(4,3)) #グラフそのもののサイズをインチ単位で指定
par(mgp = c(2, 0.55, 0)) #説明,ラベル,軸の位置を行で指定.
par(oma = c(0, 0,0, 0)) # 余白の広さを行数で指定.下,左,上,右の順.
plot(iris[,2],iris[,1],las=1)
この時に、Rからエラーが出る場合があります。
plot.new() でエラー: plot region too large
これは、描画しようとするグラフがグラフウインドウよりも大きいときに出るエラーです。
対策方法としては、おそらくなにも書かれていないグラフウインドウが出ているのでこれをグラフウインドウをドラッグあるいは最大化ボタンを押してグラフウインドウを大きくした後に再度スクリプトをコピペしてやり直します。ウインドウは大きくなりますが、描画されるグラフの大きさは変わりません。
この場合、グラフのサイズは指定できますが、グラフの周囲の余白は毎回サイズが変わってしまう場合があります。ほかのグラフと揃えて並べたい時に困るかもしれません
その場合にはdev.new()での描画領域のサイズ指定と、pinでのグラフサイズ指定を組み合わせるとうまくいきます。しかし、dev.new()のサイズがまずいとエラーになりますのでdev.new()の値は、pinの値よりも2インチ程度大きい値を指定してください。
dev.new(width=6, height=5)
par(pin = par(4,3)) #グラフそのもののサイズをインチ単位で指定
par(mgp = c(2, 0.55, 0)) #説明,ラベル,軸の位置を行で指定.
par(oma = c(0, 0,0, 0)) # 余白の広さを行数で指定.下,左,上,右の順.
plot(iris[,2],iris[,1],las=1)
この記事へのコメント