R轮廓和填充轮廓不能组合在一起

时间:2013-03-22 13:15:47

标签: r contour

我想绘制一张全球海面温度的图片,但是在我填充了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)

如我们所见,填充图片的位置与原始数据不对应 比如唯一的轮廓图

问题是什么?

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

1 个答案:

答案 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())

给出了:

enter image description here