使用美国县级数据创建Choropleth地图

问题描述 投票:0回答:1

[我正在尝试使用R生成有关COVID-19感染的县级数据的choropleth图。我是R so的相对新手...。

我已经使用ggmap完成了一些相当基础的工作,以绘制空间数据,但从来没有像现在这样。通常,我只有一些需要叠加在地图上的兴趣点,因此可以使用geom_point及其纬度/经度。在这种情况下,我需要构造基础地图,然后填充区域,而我在ggplot世界中很难做到这一点。

我已经遵循了一些网上示例,据我所知:

library(ggplot2)
library(broom)
library(geojsonio)

#get a county level map geoJSON file
counties <- geojson_read("https://eric.clst.org/assets/wiki/uploads/Stuff/gz_2010_us_050_00_500k.json", what = "sp")

#filter our alaska and Hawaii
lower48 <- counties[(counties@data$STATE != "02" & counties@data$STATE != "15") ,]

#turn it into a dataframe for ggmap
new_counties <- tidy(lower48)

# Plot it
print(ggplot() +
  geom_polygon(data = new_counties, aes( x = long, y = lat, group = group), fill="#69b3a2", color="white") +
  theme_void() +
  coord_map())

哪个产生此情节:

enter image description here

到目前为止,一切都很好。但是我的new_counties数据框现在看起来像这样:

head(new_counties)
# A tibble: 6 x 7
   long   lat order hole  piece group id  
  <dbl> <dbl> <int> <lgl> <chr> <chr> <chr>
1 -85.4  33.9     1 FALSE 1     0.1   0    
2 -85.4  33.9     2 FALSE 1     0.1   0    
3 -85.4  33.9     3 FALSE 1     0.1   0    
4 -85.4  33.9     4 FALSE 1     0.1   0    
5 -85.4  33.9     5 FALSE 1     0.1   0    
6 -85.4  33.8     6 FALSE 1     0.1   0 

因此,我已经失去了所有可能与县级感染数据相关的信息。

我的数据在每个县都有一个5位数的FIPS代码。前两位数字是州,后三位是县。我的geoJSON文件包含更详细的FIPS代码。我尝试仅获取前5个并创建自己的数据元素,然后可以将其映射回

library(ggplot2)
library(broom)
library(geojsonio)

#get a county level map geoJSON file
counties <- geojson_read("https://eric.clst.org/assets/wiki/uploads/Stuff/gz_2010_us_050_00_500k.json", what = "sp")

#filter our alaska and Hawaii
lower48 <- counties[(counties@data$STATE != "02" & counties@data$STATE != "15") ,]

#add my own FIPS code
lower48@data$myFIPS <- substr(as.character(lower48@data$GEO_ID),1,5)  

#turn it into a dataframe for ggmap
new_counties <- tidy(lower48, region = "myFIPS")


# Plot it
print(ggplot() +
  geom_polygon(data = new_counties, aes( x = long, y = lat, group = group), fill="#69b3a2", color="white") +
  theme_void() +
  coord_map())

但是会产生此情节

enter image description here

而且我不得不说我对扫帚:: tidy还不太熟悉,确切地知道为什么。当我键入此内容时,我也注意到需要过滤掉波多黎各!

[如果有人可以向我指出一个有用的方向……。尽管我想坚持使用ggplot2或ggmap,但我不愿意采用当前的方法。我的老板最终要我覆盖某些功能。最终目标是按照示例here并制作一个动画地图,显示随时间推移的数据,但显然,我还有很长的路要走。

[我正在尝试使用R生成有关COVID-19感染的县级数据的choropleth映射。我是R的相对新手,所以...。我已经用ggmap完成了一些相当基本的工作,以绘制空间数据,但...

r ggplot2 geospatial ggmap choropleth
1个回答
1
投票

有很多方法可以执行此操作,但是概念基本相同:找到包含国家/地区级别FIPS代码的地图,并使用它们与数据源进行链接,该数据源也包含相同的FIPS代码以及用于绘制的变量(此处每天covid-19例的数量)。

© www.soinside.com 2019 - 2024. All rights reserved.