如何在tmap中指定栅格图层的单一颜色?

3
我希望能够调整使用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个回答

2
显然,当你只指定col=时,它会用一种颜色将整个光栅图着色。所以我猜你必须选择点所在的层?然后按照文档中的说明提供一个palette=参数即可。
这是我让它正常工作的方法:
tm_shape(a) +
  tm_raster(col = "layer", palette = "black") 

enter image description here


1
简单但不直观...! ;) - Boris Leroy
绝对不直观 xD - Humpelstielzchen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接