如何用R绘制仅含国家轮廓与点位的白色背景图像?
解决方案:实现纯白背景+国家轮廓+标记点的地图
我明白你的需求啦——想要去掉温度数据的颜色填充,只保留白色背景、国家轮廓和柏林的标记点对吧?用NA矩阵没成功是因为image.plot本身就是为带颜色映射的栅格数据设计的,哪怕传入NA矩阵,它还是会尝试构建颜色轴相关元素,反而达不到纯白背景的效果。咱们换个思路,直接从空白画布开始构建:
修改后的代码
# 示例数据(和你原来的一致) temperature <- matrix(runif(143605,1,30), nrow = 385, ncol= 373) berlin <- c(x = 13.4, y = 52.52) data(wrld_simpl) # 加载世界地图数据 # 1. 创建空白的白色背景绘图区域,匹配你的经纬度范围 plot(range(longitude), range(latitude), type = "n", # 关键:不绘制任何数据点,只生成坐标轴和标题框架 xlab = "Longitude", ylab = "Latitude", main = model.names, bg = "white") # 设置画布背景为纯白色 # 2. 叠加国家轮廓线 plot(wrld_simpl, add = TRUE) # 3. 添加指定的点位(柏林) points(berlin["x"], berlin["y"], pch = 21, bg = "black")
为什么这个方法可行?
plot(type="n")会生成一个只有坐标轴、标题和白色背景的空白画布,完全避开了image.plot的颜色映射逻辑,这是最直接的方式。- 之后通过
add=TRUE参数,把国家轮廓和标记点依次叠加到这个空白画布上,完美实现你想要的效果。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

