Немного запутанный код. Здесь все упрощено. Обратите внимание, что не все вызовы библиотеки пакетов актуальны. Просто добавьте цвет (черный) в тот же geom_polygon
вызов. Может быть лучший способ присвоения разных имен подразделений вашим штатам.
library(ggplot2)
library(mapdata)
#> Loading required package: maps
us_state_map = map_data("state")
#map each state to a division
us_state_map$division[us_state_map$region %in% c("connecticut", "maine", "massachusetts", "new hampshire", "rhode island", "vermont")] <- "1"
us_state_map$division[us_state_map$region %in% c("district of columbia", "maryland", "new jersey","pennsylvania","west virginia" ,"delaware")] <- "2"
us_state_map$division[us_state_map$region %in% c("alabama","florida","georgia","arkansas","louisiana", "mississippi")] <- "3"
us_state_map$division[us_state_map$region %in% c("oklahoma","texas")] <- "4"
us_state_map$division[us_state_map$region %in% c("arizona","california","utah", "new mexico", "nevada")] <- "5"
us_state_map$division[us_state_map$region %in% c("alaska","idaho","oregon","washington","montana","hawaii")] <- "6"
us_state_map$division[us_state_map$region %in% c("illinois","north dakota","minnesota","south dakota","wisconsin")] <- "7"
us_state_map$division[us_state_map$region %in% c("colorado","iowa","kansas","missouri","nebraska", "wyoming" )] <- "8"
us_state_map$division[us_state_map$region %in% c("new york")] <- "9"
us_state_map$division[us_state_map$region %in% c("indiana", "michigan", "ohio")] <- "10"
us_state_map$division[us_state_map$region %in% c("north carolina","south carolina","tennessee", "kentucky", "virginia")] <- "11"
ggplot() +
geom_polygon(data=us_state_map, aes(x=long, y=lat, group=group, fill=division), color = 'black')
Создано в 2020-03-16 пакетом Представить (v0.3.0)
Теперь вы хотите визуализировать другое измерение с помощью fill
, просто поверх? Это сложно - мы имеем дело с двухмерной бумагой здесь. Подумайте об изменении эстетики c. Например, используйте цвет для ваших делений, а затем вы можете использовать заливку для ваших значений в процентах. Для назначения этих значений важно использовать один и тот же фрейм данных с одними и теми же полигонами региона (!!!).
library(tidyverse)
us_state_map <- us_state_map %>% mutate(percent_virtual = group)
ggplot() +
geom_polygon(data=us_state_map, aes(x=long, y=lat, group=group, color = division, fill = percent_virtual), size = 1.5 )
Создано в 2020-03-16 пакетом Представить (v0.3.0)
PS Я не обязательно нахожу приведенное выше решение сюжета очень хорошим, просто оно демонстрирует использование разных эстетик c для разных размеров.