2

出版物のグラフを作成していますが、同じフォントサイズにする必要があります。

複数のプロットで図を作成すると、解像度やパラメータを変更していなくても、フォントサイズが小さくなります。最終的にプロットの数に合わせて図のサイズを大きくし、マージンが単一および複数のプロット図と同等であることを確認しました。tiff()pointsize

次にサンプルコードを示します(フォントサイズは1x1と2x1の図の間で一貫していますが、3x2の図では小さくなります)。

tiff("1x1.tif", width=3,height=2.5,units="in",res=600,pointsize=8,
compression="lzw",restoreConsole=T)
par(mfrow=c(1,1),mar=c(4,4,.5,.5)+0.1)
plot(x=rnorm(10),y=rnorm(10))
dev.off()

tiff("2x1.tif", height=2.5*2,width=3,units="in",res=600,pointsize=8,
compression="lzw",restoreConsole=T)
par(mfrow=c(2,1),mar=c(2,4,2.5,0.5)+0.1)
plot(x=rnorm(10),y=rnorm(10),xaxt="n",xlab="")
par(mar=c(4,4,0.5,0.5)+0.1)
plot(x=rnorm(10),y=rnorm(10))
dev.off()

tiff("3x2.tif", height=2.5*3,width=3*2,units="in",res=600,pointsize=8,
compression="lzw",restoreConsole=T)
par(mfrow=c(3,2),mar=c(.5,4,4,0.5)+0.1)
plot(x=rnorm(10),y=rnorm(10),xaxt="n",xlab="")
par(mar=c(.5,2,4,2.5)+0.1)
plot(x=rnorm(10),y=rnorm(10),xaxt="n",xlab="",yaxt="n",ylab="")
par(mar=c(2.5,4,2,0.5)+0.1)
plot(x=rnorm(10),y=rnorm(10),xaxt="n",xlab="")
par(mar=c(2.5,2,2,2.5)+0.1)
plot(x=rnorm(10),y=rnorm(10),xaxt="n",xlab="",yaxt="n",ylab="")
par(mar=c(4.5,4,0,0.5)+0.1)
plot(x=rnorm(10),y=rnorm(10))
par(mar=c(4.5,2,0,2.5)+0.1)
plot(x=rnorm(10),y=rnorm(10),yaxt="n",ylab="")
dev.off()

なぜこうなった?

PS:使用していないggplot2lattice、「実際の」数値に独自のエラーバー関数を使用しているためです(理由は今は思い出せませんが、ggplot2エラーバーを使用してみましたが、必要なものが得られませんでした)。

4

1 に答える 1

10

プロット内のオブジェクト(テキストを含む)の全体的な相対サイズを制御するパラメーターは、と呼ばれcexます。多くのパネルを使用する場合、デフォルトでは減少しますが、手動でに設定することでオーバーライドできます1

par(mfrow=c(3,2), mar=c(.5,4,4,0.5)+0.1, cex=1)

トピック外のヒント

の呼び出しの間に呼び出すのではomaなく、(外側のマージン)を使用する必要があるようです。とても便利だと思いますが、ほとんど誰も知らないようです。また、すべての注釈をオフにし、軸の目盛りラベルを水平にします。par(mar=...)plotann=FALSElas=1

par(mfrow=c(3,2), oma=c(4.5, 4, 4, 2.5), mar=rep(.1, 4), cex=1, las=1)
plot(x=rnorm(10), y=rnorm(10), ann=FALSE, xaxt="n")
plot(x=rnorm(10), y=rnorm(10), ann=FALSE, xaxt="n", yaxt="n")
plot(x=rnorm(10), y=rnorm(10), ann=FALSE, xaxt="n")
plot(x=rnorm(10), y=rnorm(10), ann=FALSE, xaxt="n", yaxt="n")
plot(x=rnorm(10), y=rnorm(10), ann=FALSE)
plot(x=rnorm(10), y=rnorm(10), ann=FALSE, yaxt="n")
title("My plot", outer=TRUE)
mtext("X-axis label", 1, 3, outer=TRUE)
mtext("Y-axis label", 2, 3, outer=TRUE, las=0)

ここに画像の説明を入力してください

于 2012-09-21T16:20:34.690 に答える