Choropleth Карта Государства Населения - PullRequest
0 голосов
/ 01 ноября 2018

Пытается создать картографическую карту, показывающую население штата и обозначающее столицы. Сначала у меня было два фрейма данных, но я не смог добавить ggplot 1 в ggplot 2, поэтому я объединил два фрейма данных, часть таблицы выглядит так: enter image description here

в основном пытается объединить эти два изображения вместе: enter image description here

и enter image description here

Я написал

ggplot(spr, aes(long, lat)) + borders("state") + geom_point() + 
coord_quickmap() +geom_label_repel(aes(label = city), size = 2) + 
geom_polygon(aes(long, lat, group = capital, fill = pcls),color = "grey") +
coord_map("bonne", parameters=45) +ggthemes::theme_map() + 
scale_fill_brewer(palette = "Reds")

но карта выглядит не так: enter image description here

Я думаю, что часть многоугольника сбивает меня с толку, но не уверен, что с этим делать.

1 Ответ

0 голосов
/ 02 ноября 2018

Вам понадобятся шейп-файлы или, по крайней мере, будут известны границы для сопоставления данных.

В соответствии с вашим вопросом на другой день, вы все равно можете использовать state. scale_fill_brewer предназначен для использования с дискретными переменными. Используйте scale_fill_gradientn, указав brewer.pal. Добавьте слой capitals туда, где хотите.

library(ggplot2)
library(usmap)
library(maps)
library(ggrepel)
library(ggthemes)

us <- map_data("state") # get the data to plot and map data to
data(statepop)
pops <- statepop
pops$full <- tolower(pops$full)

ggplot() + geom_map(data = us, map = us, aes(long, lat, map_id = region), fill = "#ffffff", color = "#ffffff", size = 0.15) +
  geom_map(data = pops, map = us, aes(fill = pop_2015, map_id = full), size = 0.15) +
  coord_map("bonne", parameters=45) +
  scale_fill_gradientn(colors = brewer.pal(9, "Reds")) + #adjust the number as necessary
  borders("state") +
  ggthemes::theme_map()

...