Дискретные значения в легенде карты США с использованием plot_usmap - PullRequest
0 голосов
/ 20 апреля 2020

Я строю группу «обработанных» округов, используя usmap :: plot_usmap (), так что обработка = 1 для идентифицированных округов и 0 в противном случае. Я хотел бы, чтобы легенда отражала факт, что переменная была дискретной (0/1), а не показывала непрерывную шкалу цветов? В моем наборе данных есть 2 переменные: fips и treatment.

Мой код:

library(usmap)
library(ggplot2)

  plot_usmap(regions = "county", data=data, values = "treatment",color="grey")+ 
  theme(panel.background = element_rect(colour = "black"))+
  scale_fill_gradient(low = "white", high = "blue",name = "treatment",
                      breaks=c(0,1), limits = c(0, 1)) + 
  theme(legend.position = "right") 

График вывода: enter image description here

1 Ответ

1 голос
/ 20 апреля 2020

Вы должны преобразовать лечение в factor или character. Цвета могут быть установлены через scale_fill_manual. Используя случайный пример data, попробуйте это:

library(usmap)
library(ggplot2)
library(dplyr)

# example data
set.seed(42)
data <- utils::read.csv(system.file("extdata", "county_fips.csv", 
                                  package = "usmap")) %>% 
  select(fips) %>% 
  mutate(treatment = sample(c(0, 1), nrow(.), replace = TRUE))

# Convert treatment to factor
data <- mutate(data, treatment = factor(treatment))

plot_usmap(regions = "county", data=data, values = "treatment",color="grey")+ 
  theme(panel.background = element_rect(colour = "black")) +
  scale_fill_manual(values = c(`0` = "white", `1` = "blue"), name = "treatment") + 
  theme(legend.position = "right")

Создано в 2020-04-20 пакетом представлением (v0 .3.0)

...