Как отобразить две переменные на карте графства США в R? - PullRequest
0 голосов
/ 02 апреля 2020

df1:

score1   score2 FIPS
0.1230    4     1001
0.4503    1     2001
0.5642    0     4001
0.2011    3     5001
0.2012    2     6001
0.1093    0     8001
0.3422    10    1005
0.1033    3     17001
0.2432    30    19001
0.1002    7     1017

Я хотел бы заштриховать каждый округ в Соединенных Штатах на основе веса score1, затем я хотел бы сделать полупрозрачные круги вокруг округов на основе score2. Как я могу это сделать?

Вывод: enter image description here

1 Ответ

0 голосов
/ 02 апреля 2020

Я сделал то, что, как я думаю, вы хотите, следующим образом.

  1. Я получил шейп-файлы США от этого URL .
  2. вам нужно sf, Пакеты dplyr и ggplot2.

Поскольку вы не предоставили воспроизводимый пример ваших данных, мне пришлось смоделировать переменные score1 и score2.

# packages --------------------------------------
library(sf)
library(dplyr)
library(ggplot2)

# Import shape files
# (You have to unpack the zip with the shape files)
usa_map <- read_sf("USA_States.shx")

# Adding the variables you need. 
# In your case you can left_join your variables 

usa_map <- usa_map %>% 
    mutate(
        score1 = sample(1:1000, 51),
        score2 = sample(1:500, 51)
    ) %>% 
    filter(!STATE_NAME %in% c("Alaska", "Hawaii"))

# Use ggplot2 to make the plot
usa_map %>% 
    ggplot() +
    geom_sf(aes(fill = score1)) +
    geom_sf(data = st_centroid(usa_map), aes(size = score2), alpha = 0.4, color = "red") +
    guides(size = FALSE) +
    theme_void()

enter image description here

...