尝试创建一个显示州人口的choropleth地图,并标记首都。我最初有两个数据帧,但无法将ggplot 1添加到ggplot 2,因此我将两个数据帧组合在一起,表的一部分如下所示:
我写了
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")
我认为是多边形部分让我失望,但不确定该怎么做。
答案 0 :(得分:3)
您将需要shapefile,或者至少具有将数据映射到的边界。
根据前一天的问题,您仍然可以使用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()