首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用tmap绘制普查区域

无法使用tmap绘制普查区域
EN

Stack Overflow用户
提问于 2022-10-07 16:46:19
回答 1查看 36关注 0票数 0

我在用tmap绘制纽约的人口普查图时出错了。下面是一个例子和错误。

它要求API密钥是免费的。下面是链接- https://api.census.gov/data/key_signup.html

代码语言:javascript
复制
library(tidycensus)
library(tmap)

census_api_key("it requires API key")


NY <- get_acs(
  geography = "tract",
  table = "B19001",
  state = "NY", 
  year = 2020,
  geometry = TRUE,
  cache_table = TRUE
)

tm_shape(shp = NY) + 
  tm_polygons()

我搞错了。

代码语言:javascript
复制
Error in `$<-.data.frame`(`*tmp*`, "SHAPE_AREAS", value = c(5.02814518540036,  : 
  replacement has 91698 rows, data has 91987
In addition: Warning message:
The shape NY contains empty units. 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-09 13:57:11

看起来get_acs()返回289个空几何图形,这会导致tmap错误。使用sf::st_make_valid可以处理错误,尽管它仍然会引起警告。

关于空几何图形的更多讨论,以及如何处理它们:https://r-spatial.org/r/2017/03/19/invalid.html#empty-geometries

代码语言:javascript
复制
NY <- get_acs(
  geography = "tract",
  table = "B19001",
  state = "NY", 
  year = 2020,
  geometry = TRUE,
  cache_table = TRUE
)

tm_shape(shp = st_make_valid(NY)) +  ### <- added st_make_valid here
  tm_polygons()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73990261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档