如何使用R语言Tidycensus包创建双变量等值区域图
正如Kyle Walker在《Spatial Analysis with US Census Data》中介绍,R语言tidycensus包可直接对接Census.gov API获取美国人口普查数据,绘制普通单变量等值区域图(choropleth)十分简便。如果需要绘制双变量等值区域图(bivariate choropleth map),搭配biscale包即可快速实现,具体方法如下:
单变量等值区域图基础用法
tidycensus拉取带空间属性的普查数据后,可直接调用基础绘图函数生成单变量等值区域图,效果示例如下:
实现代码如下:
miami_income <- get_acs(geography = "tract", year = 2020, variables = c( Median_Income = "B19013_001" ), state = "FL", county = "Miami-Dade County", geometry = TRUE) plot(miami_income["estimate"])
双变量等值区域图实现方案
双变量等值区域图可同时展示两个指标的空间分布组合特征,Christopher Prener博士开发的biscale包已经封装好了双变量分箱、配色、主题适配的全流程工具,无需手动编写映射逻辑,出图效果示例如下:
实现代码如下:
## stl_race_income example data in biscale package stlouis_race_income_bivar <- biscale::bi_class(stl_race_income, x = pctWhite, y = medInc, style = "quantile", dim = 3) # create map ggplot() + geom_sf(data = stlouis_race_income_bivar, mapping = aes(fill = bi_class), color = "white", size = 0.1, show.legend = FALSE) + bi_scale_fill(pal = "GrPink", dim = 3) + labs( title = "Race and Income in St. Louis, MO", subtitle = "Gray Pink (GrPink) Palette" ) + bi_theme()
实际使用时,只需要将tidycensus拉取到的、包含两个目标分析变量的sf格式空间数据,替换上述代码中的stl_race_income,将x、y参数设置为需要分析的两个变量对应的列名,即可生成对应研究区域的双变量等值区域图。
内容的提问来源于stack exchange,提问作者Rick Pack
相关产品推荐
相关产品推荐

