web-dev-qa-db-ja.com

tmapの凡例を操作する方法は?

鳥類の年間変化率の主題図を作成しています。これが私が持っているコードです:

tm_shape(grid83)+
  tm_fill("trend", title = "Percent change per Year", textNA = "None counted", style="fixed",
    breaks=c(-Inf, -1.5, -0.25, 0.25, 1.5, Inf),
    palette = c("red", "orange", "yellow", "turquoise", "blue", "white"))+
  tm_borders(NA)+
tm_shape(uscan83)+ # add US and CAN 
  tm_borders()+
tm_layout(
  "Western Grebe",
  legend.title.size=1,
  legend.text.size = 0.6,
  legend.position = c("left","bottom"),
  legend.bg.color = "white",
  legend.digits = 5,
  legend.bg.alpha = 1)

現在、すべてのNA値は灰色で表示されます。カラーパレットを変更しようとしました:

palette = c("red", "orange", "yellow", "turquoise", "blue", "white"))

しかし、これは機能していないようです。 NA値はすべてまだ灰色です。私は何が間違っているのですか?

本当にありがとう!

11
wallflower

それで、あなたは特にNA値のために色を変えようとしていますか? tm_fill()へのcolorNA引数はその目的を果たします。

次に例を示します。

library(tmap)
data(Europe)
tm_shape(Europe) +
tm_fill("gdp_cap_est", title = "GDP", style = "fixed",
        breaks = c(0, 10000, 20000, 30000, 40000, Inf),
        textNA = "Dunno", 
        colorNA = "green",   # <-------- color for NA values
        palette = c("red", "orange", "yellow", "turquoise", "blue", "white")) +
tm_borders() +
tm_layout("Wealth (or so)",
          legend.title.size = 1,
          legend.text.size = 0.6,
          legend.position = c("left","bottom"),
          legend.bg.color = "white",
          legend.digits = 5,
          legend.bg.alpha = 1)

次のようになります。

enter image description here

12
WhiteViking