[我正在尝试使用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())
哪个产生此情节:
到目前为止,一切都很好。但是我的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())
但是会产生此情节
而且我不得不说我对扫帚:: tidy还不太熟悉,确切地知道为什么。当我键入此内容时,我也注意到需要过滤掉波多黎各!
[如果有人可以向我指出一个有用的方向……。尽管我想坚持使用ggplot2或ggmap,但我不愿意采用当前的方法。我的老板最终要我覆盖某些功能。最终目标是按照示例here并制作一个动画地图,显示随时间推移的数据,但显然,我还有很长的路要走。
[我正在尝试使用R生成有关COVID-19感染的县级数据的choropleth映射。我是R的相对新手,所以...。我已经用ggmap完成了一些相当基本的工作,以绘制空间数据,但...
有很多方法可以执行此操作,但是概念基本相同:找到包含国家/地区级别FIPS代码的地图,并使用它们与数据源进行链接,该数据源也包含相同的FIPS代码以及用于绘制的变量(此处每天covid-19例的数量)。