1 ページに 4 つのプロットを配置したいと思います。軸ラベルは一番端にのみ印刷する必要があります。つまり、x軸ラベルは下のダイアグラムのみ、y軸ラベルは左側のダイアグラムのみです。これは、軸全体の名前と個々の目盛りの両方に当てはまります。次のコードを使用して、これらの行に沿って何かを生成できます。
pdf(file = "ExampleOutput.pdf",
width = 6.61,
height = 6.61,
pointsize = 10
)
set.seed(42)
catA <- factor(c("m100", "m500", "m1000", "m2000", "m3000", "m5000"))
catB <- factor(20:28)
samples <- 100
rsample <- function(v) v[ceiling(runif(samples, max=length(v)))]
Tab <- data.frame(catA = rsample(catA),
catB = rsample(catB),
valA = rnorm(samples, 150, 8),
valB = pmin(1,pmax(0,rnorm(samples, 0.5, 0.3))))
par(mfrow = c(2,2))
for (i in 0:3) {
x <- Tab[[1 + i %% 2]]
plot(x, Tab[[3 + i %/% 2]],
xlab = if (i %/% 2 == 1) "Some Categories" else NULL,
ylab = if (i %% 2 == 0) "Some Values" else NULL,
axes = FALSE
)
axis(side = 1,
at=1:nlevels(x),
labels = if (i %/% 2 == 1) levels(x) else FALSE)
axis(side = 2, labels = (i %% 2 == 0))
box(which = "plot", bty = "l")
}
par(mfrow = c(1,1))
dev.off()
プロットコマンドを改善する方法についての提案を歓迎します。おそらく、左下隅の軸と L を手動で排出しないようにします。しかし、それはあくまでも余談です。
このシーケンスの結果は次のようになります。
ここでの問題は、無駄な空白が大量にあることです。R は、軸ラベルと目盛りラベルが使用されていなくても、そのスペースを確保している印象があります。この無駄なスペースの結果として、左下の図では、1 秒ごとのxティックだけが実際にラベル付けされます。これは、ここでは非常に悪いことです。
空白をあまり使わずに同様のプロットを生成したいと思います。実際のプロットは同じサイズにする必要があるため、適切に並べることができますが、ラベルのスペースは外側のみにする必要があります。このようなレイアウトを想像します(GIMPで作成されたモックアップ):
どうすればそのようなレイアウトを実現できますか?