我在下面整理了一个玩具示例。
我的问题是,我怎样才能添加海岸线(就像你可以从maps
包裹到下面的多面图一样?
我可以使用contour()
and来做到这一点filled.contour()
,但我不确定ggplot2
在使用 facet 图层时如何使用 -style 绘图来解决这个问题。当我有一个情节时,我可以毫无问题地绘制海岸。
您可以在此处从 NOAA 下载 netCDF 文件“sst.mon.anom.nc” (~ 10mb)。
library(ncdf4)
library(ggplot2)
library(reshape)
# The data is 5x5 degree reconstructed sea-surface temperature anomalies.
# Exciting stuff.
sst <- ncvar_get(nc = nc_open("sst.mon.anom.nc"),
varid = "sst",
start = c(1, 1, 1),
count = c(-1, -1, -1))
# Drawing out four layers from the sst array.
d1 <- melt(sst[, , 1])
d1$drought <- rep("d1", dim(d1)[1])
d3 <- melt(sst[, , 3])
d3$drought <- rep("d3", dim(d3)[1])
d5 <- melt(sst[, , 5])
d5$drought <- rep("d5", dim(d5)[1])
d6 <- melt(sst[, , 6])
d6$drought <- rep("d6", dim(d6)[1])
# Combining the layers into a single data.frame:
d <- rbind(d1, d3, d5, d6)
names(d) <- c("lon", "lat", "ERSST", "layer")
p <- ggplot(data = d, aes(x = lon, y = lat, fill = ERSST))
print(p + geom_tile() +
scale_fill_gradient2(high = "red", low = "blue") +
facet_wrap(~ layer) )
非常感谢!
PS 另外,我刚刚注意到颜色图例的顺序是颠倒的。唔...