如何使用oce包绘制仅含20℃ SST等温线的世界地图
解决方案
要只绘制20℃的海温等温线,不需要过滤数据,直接在mapContour()中指定levels参数为目标温度值即可,替代原来的nlevels参数:
library(oce) library(ocedata) data(coastlineWorld) data(levitus, package = "ocedata") mapPlot(coastlineWorld, col = "lightgray", projection = "+proj=robin", drawBox = FALSE) # 用levels指定仅绘制20℃等温线 mapContour(levitus[["longitude"]], levitus[["latitude"]], levitus[["SST"]], levels = c(20))
说明
- 原代码中
nlevels = 2是让程序根据数据的温度范围自动生成2个等间距的等温线级别,所以会出现0℃和另一条线; - 使用
levels = c(20)可以强制程序仅绘制指定温度的等温线,精准匹配需求,无需额外过滤数据集。
内容的提问来源于stack exchange,提问作者maRvin
相关产品推荐
相关产品推荐

