R轮廓线和填充轮廓线无法配合使用

3
我想要绘制全球海表面温度的图片,但是在我填色后,试图在填充后的图片上添加计数器边框时,出现了一些奇怪的情况,这两张图片无法拼合在一起。以下是代码,由于我没有空间放置原始数据,所以使用了随机数字。
library(maps)

ee<-array(rnorm(89*180),dim=c(89,180))

lati <- seq(-90,90,length=89) #Latitudes goes from -90 to 90 as far as I know :)
long <- seq(-180,180,length=180)
plot(NA, xlim=c(-180,180), ylim=c(-90,90), xlab="", ylab="", xaxs="i", yaxs="i")
contour(long, lati, t(ee), add=TRUE)
filled.contour(long,lati,t(ee), color.palette=terrain.colors)
maps::map(database="world", fill=TRUE, col="light blue", add=TRUE)

正如我们所看到的,填充图像的位置与原始数据不对应,例如唯一的轮廓图。

问题出在哪里呢?

最后,非常抱歉我的英语不好,谢谢大家。

1个回答

3
您可以在filled.contour帮助页面中阅读以下内容:
“filled.contour”生成的输出实际上是两个图的组合,一个是填充轮廓图,一个是图例。这两个图使用了两个不同的坐标系,但它们仅在内部使用 - 一旦函数返回,这些坐标系将丢失。如果您想注释主轮廓图,例如添加点,则可以在“plot.axes”参数中指定图形命令。请参见示例。
因此,尝试将其应用于您的示例,您可以执行以下操作:
library(maps)
ee<-array(rnorm(89*180),dim=c(89,180))
lati <- seq(-90,90,length=89) #Latitudes goes from -90 to 90 as far as I know :)
long <- seq(-180,180,length=180)
draw.map <- function() {maps::map(database="world", fill=TRUE, col="light blue", add=TRUE)}
filled.contour(long,lati,t(ee), color.palette=terrain.colors, plot.axes=draw.map())

这提供了:

enter image description here


谢谢您,Juba。作为新手,我非常高兴您能帮助我解答所有这些问题。 - TOPMAD
欢迎您来到Stack Overflow。如果我的回答解决了您的问题,您可以勾选绿色标记以让其他用户知道。但是您也可以等待其他更好的答案。不用谢! - juba
好的,但我声望太低了,不能做到。我会尽力做一些我擅长的东西,比如FORTRAN或气象学。 - TOPMAD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接