Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何为面板中的四个绘图设置光栅图例?_R_Raster_Legend Properties - Fatal编程技术网

R 如何为面板中的四个绘图设置光栅图例?

R 如何为面板中的四个绘图设置光栅图例?,r,raster,legend-properties,R,Raster,Legend Properties,我用par(mfrow=c(2,2)),做了四个两层的光栅图,并且做得非常简单,但是当设置一个公共图例时,会把图弄得一团糟,它总是与其他图重叠。我尝试更改一些参数值,但问题仍然存在。这是我的密码 library(maps) library(raster) # set colour col<- colorRampPalette(c("grey","green","green3","darkgreen")) #set panel for four plots par(mfro

我用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))
库(地图)
图书馆(光栅)
#定色
col我只是回答你问题的重叠主题,没有考虑布局中的任何其他变化(也没有回答警告消息)。为了获得MWE,我使用了来自光栅包的
测试网格
数据

我想你差不多到了(在调用
par
时标记
oma
参数)

在第一次调用
par
时,将
oma
参数中的第四个条目设置为高于
0
的值,以便在右侧留出一些空间。然后,在将参数重置为单个绘图时,也将该值重置为例如
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))
库(地图)
图书馆(光栅)

是的,它工作得很好,我想这意味着我们需要给以前的情节留出空间。是的,就是这样。如果这有帮助的话,如果你能接受这个回答就好了。