我想绘制一张全球海面温度的图片,但是在我填充了sst的轮廓之后,我尝试在填充的图片上添加更广泛的计数器,然后发生了一些奇怪的事情,这些图片无法融合在一起 这是代码,因为我没有空间放原始数据,使用随机数
这是代码
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)
如我们所见,填充图片的位置与原始数据不对应 比如唯一的轮廓图
问题是什么?
最后抱歉我的英语不好,谢谢大家
答案 0 :(得分: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())
给出了: