我对R和ggplot很陌生。我正在尝试绘制1999年至2017年期间一系列facet_wrap
的一系列美国Choropleth地图。
我试图遵循这篇文章(How to map all the states of US using R with the number of crimes occurred in each state?)的代码,但是在确定边界并填写给定年份没有数据的州时遇到了麻烦。
我有一个名为by_year
的数据框,像这样的数据。问题是任何一年,大多数州不在df中(该年没有报告价值)。
state Year Value
new jersey 1999 13.8
oklahoma 1999 16.5
到目前为止,我的代码是:
us.states <- map_data("state")
ggplot(data = by_year, aes(map_id = state)) +
geom_map(aes(fill = Value), color= "black", map = us.states) +
expand_limits(x = us.states$long, y = us.states$lat) +
coord_map() +
scale_x_continuous(breaks = NULL) + scale_y_continuous(breaks = NULL) +
labs(x = "", y = "") + theme(legend.position = "bottom",
panel.background = element_blank())+
facet_wrap(~Year, ncol = 5)
这将产生以下输出:
如您所见,对于任何给定的年份,许多州都没有数据。如何获取每年缺少状态的轮廓,并用浅灰色填充?我还希望将色标更改为红色阴影(较深的阴影表示较高的值)。
非常感谢您的帮助。