Я сделал то, что, как я думаю, вы хотите, следующим образом.
- Я получил шейп-файлы США от этого URL .
- вам нужно
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()