Как указать один цвет для растров с помощью tmap? - PullRequest
2 голосов
/ 26 июня 2019

Я хотел бы настроить основной цвет растра, построенного с помощью 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 Ответ

1 голос
/ 26 июня 2019

Очевидно, когда вы просто указываете col=, он окрашивает весь растр в один цвет.Я полагаю, вам нужно выбрать слой, на котором находятся точки?А затем предоставьте аргумент palette=, как описано в документации.

Вот как я заставил его работать:

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

enter image description here

...