首页 > 解决方案 > 如何使用 tmap 为栅格指定单一颜色?

问题描述

当栅格中只有一个值时,我想调整用 tmap 绘制的栅格的基本颜色。

这是一个非常简单的可重现示例:

library(raster)
library(tmap)
a <- raster(matrix(sample(c(1, NA), 10000, replace = TRUE, prob = c(0.01, 0.99)), nr = 100, nc = 100, ))

tm_shape(a) +
  tm_raster()

基本光栅图

您可以看到默认的黄色是人眼几乎看不到的。因此,在绘制只有几个像素的地图时,很难找到具有值的像素在哪里。

不幸的是,经过多次尝试,我无法更改此颜色。我认为其他用户可能会遇到这个问题,因此如果这里出现一个简单的答案可能会很有帮助。

不成功的尝试:

tm_shape(a) +
  tm_raster(col = "black")

失败 1

tm_shape(a) +
  tm_raster(palette = "RdBu")

注意:对于这个,我预计会出现红色或蓝色。不是灰色的...我也尝试调整中点,但没有任何改变。

失败 2

tm_shape(a) +
  tm_raster() +
  tm_layout(aes.color= c(fill = "black"))

在此处输入图像描述

标签: rr-rastertmap

解决方案


显然,当您只指定col=它时,它会以一种颜色为整个栅格着色。所以我猜你必须选择点所在的图层?palette=然后按照文档中的说明提供参数。

这就是我让它工作的方式:

tm_shape(a) +
  tm_raster(col = "layer", palette = "black") 

在此处输入图像描述


推荐阅读