1

以下におもちゃの例をまとめました。

私の質問は、どうすれば海岸線を追加できるかということです (mapsパッケージから以下のファセット プロットに移動できるのと同じように?

と を使用してこれを行うことができますが、ファセット レイヤーを使用する場合にスタイルのプロットでこれcontour()filled.contour()行う方法がわかりません。ggplot2単一のプロットがある場合、海岸をプロットするのに問題はありません。

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 また、色の凡例の順序が逆になっていることに気付きました。うーん...

4

1 に答える 1

1

の利点はggplot2、ファセットごとに特定の操作を実行する必要がないことです。海岸線を含む data.framegeom_pathとして with を追加すると、すべてのファセットに描画されます。パッケージのポリゴン セットで使用する例については、 のドキュメントをdata参照してください。グリッド データとポリゴン/ポリライン データが同じ投影法にある場合にのみ、これが機能することに注意してください。Throughはすぐに座標変換をサポートします。または、パッケージから使用して、データをggplot2に供給する前に座標変換を実行できます(私はこれを行う傾向があります)。coord_mapgeom_pathmapscoord_map ggplot2spTransformrgdal

于 2012-04-18T07:40:48.737 に答える