国家人口的Choropleth地图

时间:2018-11-01 20:13:12

标签: r ggplot2 choropleth

尝试创建一个显示州人口的choropleth地图,并标记首都。我最初有两个数据帧,但无法将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 :(得分:3)

您将需要shapefile,或者至少具有将数据映射到的边界。

根据前一天的问题,您仍然可以使用statescale_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()