我想将一个共同的传说集中在两个地块下面。我使用xpd=TRUE
允许在绘图本身外打印,并使用oma为图例创建空间。然而,传说不会在水平方向上移动并且会在“早期”垂直方向上被剪切。有什么建议?
quartz(title="PCoA",12,6)
par(mfrow=c(1,2),oma=c(5,0,0,0),xpd=TRUE)
plot(1:3,4:6,main="plot 1")
plot(1:3,4:6,main="plot 2")
# Clips the plot
legend(1,3.5,ncol=3,c("0-1 km","1-5 km","outside barrier"),fill=c("green","orange","red"), title="Fetch")
# Won't let me move the legend sideways
legend(0,3.5,ncol=3,c("0-1 km","1-5 km","outside barrier"),fill=c("green","orange","red"), title="Fetch")
更新
通过下面的解决方案,可以通过拖动边缘来改变图形的尺寸,从而切割图形的边缘(见下文)。有什么想法可能会发生什么?
答案 0 :(得分:14)
我建议你使用par=mfrow(...)
而不是layout()
。
这允许您指定带有绘图位置的矩阵:
layout(matrix(c(1,2,3,3), ncol=2, byrow=TRUE), heights=c(4, 1))
par(mai=rep(0.5, 4))
plot(1:3,4:6,main="plot 1")
plot(1:3,4:6,main="plot 2")
par(mai=c(0,0,0,0))
plot.new()
legend(x="center", ncol=3,legend=c("0-1 km","1-5 km","outside barrier"),
fill=c("green","orange","red"), title="Fetch")
答案 1 :(得分:4)
par(xpd=NA)
更符合您的要求。摘自?par
帮助页面:
xpd
逻辑值或NA。如果为FALSE,则所有绘图都将剪切到绘图区域,如果为TRUE,则所有绘图都将剪切到图形区域,如果为NA,则所有绘图都将剪切到设备区域。另请参阅clip
。
实际上,您希望将其剪切到设备区域而不是图形区域(例如,请参阅this blog entry,以获得图形,图形和设备区域之间差异的图形说明)。
quartz(title="PCoA",12,6)
par(mfrow=c(1,2),oma=c(5,0,0,0),xpd=NA)
plot(1:3,4:6,main="plot 1")
plot(1:3,4:6,main="plot 2")
legend(-0.5,3.5,ncol=3,c("0-1 km","1-5 km","outside barrier"),
fill=c("green","orange","red"), title="Fetch")