如何使用tmap为栅格指定单一颜色?

时间:2019-06-26 07:41:47

标签: r r-raster 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()

Basic raster plot

您可以看到人眼几乎看不到默认的黄色。因此,在仅包含几个像素的地图上绘制地图时,很难找到带有值的像素。

很遗憾,多次尝试后我无法更改此颜色。我认为其他用户可能会遇到此问题,因此,如果在此处出现一个简单的答案,可能会很有帮助。

尝试失败:

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

fail 1

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

注意:对于这个,我希望显示红色或蓝色。不是灰色...我也尝试过调整中点,但没有任何改变。

fail 2

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

enter image description here

1 个答案:

答案 0 :(得分:1)

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

这就是我的工作方式:

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

enter image description here