2 つの格子プロットがあります。上下に配置する必要があり、それらの間に正確に 0.5 インチの垂直スペースが必要です。私の考えではgrid.layout
、3 行のレイアウトを指定するために使用し、中央の行の高さを正確に 0.5 インチにします。次に、1 つのプロットを一番上の行に、もう 1 つのプロットを一番下の行に印刷できます。
それはほとんど働いています。問題は、真ん中の列の高さを正確に 0.5 インチにすることができないことです。最小限の例を次に示します。
pdf(file='example.pdf', height=12)
# Create layout and viewports
masterLayout <- grid.layout(
nrow = 3,
ncol = 1,
heights = unit(c(1, .5, 1), c("null", "inches", "null")),
respect = matrix(c(0, 1, 0)))
vp1 <- viewport(layout.pos.row=1, just=c("center", "bottom"))
vp2 <- viewport(layout.pos.row=3, just=c("center", "top"))
# Create plots
plot1 <- xyplot(1 ~ 1, panel = function () grid.rect(gp=gpar(fill="black")))
plot2 <- xyplot(1 ~ 1, panel = function () grid.rect(gp=gpar(fill="red")))
# Push viewports and print plots
pushViewport(viewport(layout = masterLayout))
pushViewport(vp1)
print(plot1, newpage = FALSE)
upViewport()
pushViewport(vp2)
print(plot2, newpage = FALSE)
dev.off()
この例で多くのバリエーションを試しましたが、プロット間の距離を 0.5 インチに固定できませんでした。それを行う方法はありますか?
更新:以下のバティストの答えは良いです。https://stat.ethz.ch/pipermail/r-help/2012-June/316178.htmlにある Deepayan Sarkar の回答も参照してください。