我完成了两个2层的光栅图,并且使用par(mfrow = c(2,2))完成了非常简单的工作,但是当设置一个常见的图例使得绘图变得混乱时,它总是与其他图重叠。我尝试更改一些参数值,但问题仍然存在。这是我的代码。
library(maps)
library(raster)
# set colour
col<- colorRampPalette(c("grey","green","green3","darkgreen"))
#set panel for four plots
par(mfrow=c(2,2),mar=c(2,2,2,2),oma=c(0,0,0,0))
#plot1
plot(novchl,col=col(20),legend =FALSE)
contour(novsst,maxpixels = 999,add=TRUE)
map(xlim=c(85, 93),ylim=c(2, 16 ),asp=1,add=TRUE,fill=TRUE,col="grey")
#plot2
plot(decchl,col=col(20),legend =FALSE)
contour(decsst,maxpixels = 999,add=TRUE)
map(xlim=c(85, 93),ylim=c(2, 16 ),asp=1,add=TRUE,fill=TRUE,col="grey")
#plot3
plot(janchl,col=col(20),legend =FALSE)
contour(jansst,maxpixels = 999,add=TRUE)
map(xlim=c(85, 93),ylim=c(2, 16 ),asp=1,add=TRUE,fill=TRUE,col="grey")
#plot4
plot(febchl,col=col(20),legend =FALSE)
contour(febsst,maxpixels = 999,add=TRUE)
map(xlim=c(85, 93),ylim=c(2, 16 ),asp=1,add=TRUE,fill=TRUE,col="grey")
reset para to single plot
par(mfrow=c(1,1),new=FALSE,mar=c(0,0,0,8))
plot(novchl,legend.only=TRUE ,legend.shrink=1, legend.width=1, zlim=c(0, 1),
axis.args=list(at=pretty(0:1), labels=pretty(0:1)),col=col(20),
legend.args=list(text='Whatever',"bottom", font=2, line=2.3))
我得到了像this.plz的图片帮助,提前谢谢
答案 0 :(得分:1)
我只是在解决问题的重叠 -topic而不考虑布局中的任何其他更改(而不是解决警告消息)。要获得MWE,我使用栅格包中的test-grid
数据。
我认为你几乎就在那里(在oma
的调用中标记par
个参数)......
在第一次调用oma
时将par
参数中的第四个条目设置为高于0
的内容,以便在<{1}}上留出一些空间em>正确方面。然后,当将参数重置为单个图时,也将该值重置为例如0
将图例放在空白处。像这样的东西
library(maps)
library(raster)
r <- raster(system.file("external/test.grd", package="raster"))
# set colour
col<- colorRampPalette(c("grey","green","green3","darkgreen"))
#set panel for four plots
par(mfrow=c(2,2),mar=c(2,2,2,2),oma=c(0,0,0,4))
#plot1
plot(r,col=col(20),legend =FALSE)
contour(r,maxpixels = 999,add=TRUE)
map(xlim=c(85, 93),ylim=c(2, 16 ),asp=1,add=TRUE,fill=TRUE,col="grey")
#plot2
plot(r,col=col(20),legend =FALSE)
contour(r,maxpixels = 999,add=TRUE)
map(xlim=c(85, 93),ylim=c(2, 16 ),asp=1,add=TRUE,fill=TRUE,col="grey")
#plot3
plot(r,col=col(20),legend =FALSE)
contour(r,maxpixels = 999,add=TRUE)
map(xlim=c(85, 93),ylim=c(2, 16 ),asp=1,add=TRUE,fill=TRUE,col="grey")
#plot4
plot(r,col=col(20),legend =FALSE)
contour(r,maxpixels = 999,add=TRUE)
map(xlim=c(85, 93),ylim=c(2, 16 ),asp=1,add=TRUE,fill=TRUE,col="grey")
#reset para to single plot
par(mfrow=c(1,1),new=FALSE, oma=c(0,0,0,0))
plot(r,legend.only=TRUE ,legend.shrink=1, legend.width=1, zlim=c(0, 1),
axis.args=list(at=pretty(0:1), labels=pretty(0:1)),col=col(20),
legend.args=list(text='Whatever',"bottom", font=2, line=2.3))