首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绘制Shapefile美学必须是长度1或与填充数据相同

绘制Shapefile美学必须是长度1或与填充数据相同
EN

Stack Overflow用户
提问于 2022-04-01 15:35:50
回答 1查看 122关注 0票数 1

我试图用它的数据作为填充来绘制一个shapefile。在尝试此操作时,我不幸地遇到了错误Aesthetics must be either length 1 or the same as the data (8112701): fill

我的数据是一个284个长的SpatialPolygonsDataFrame,格式是

代码语言:javascript
复制
nations
  @data
    $OBJECTID (numeric)
    $CNTRY_NAME (chr)
    $CNTRY_CODE (chr)
    $BPL_CODE (chr)
    $deaths (numeric)
    $cases (numeric)
  @polygons
    list of all polygons

我试图使用的代码是:

代码语言:javascript
复制
ggplot() +
  geom_polygon(data=nations, aes(x=long,y=lat,group=group,fill=nations@data$cases)) +
  theme_void()

回溯是

代码语言:javascript
复制
1. base `<fn>` (x)
2. ggplot2:::print.ggplot(x)
4. ggplot2:::ggplot_build.ggplot(x)
5. ggplot2 by)layer(function(l, d) l$compute_aesthetics(d, plot))
6. ggokit2 f(l= layers[[i]], d=date[[i]]])
7. l$compute_aestehetics(d, plot)
8. ggplot2 f(..., self=self)
9. ggplot2:::check_aesthetics(evaled, n)

Error in check_aesthetics(evaled, n)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-05 09:47:51

这个问题是由于在同一个绘图命令中使用两个不同的对象(多边形和dataframe)造成的。但是,在ggplot中为SpatialDataFrame分配单独的颜色(通过填充)是很棘手的。解决问题的方法有两种:

  1. 将您的SpatialDataFrame转换为一个简单的dataframe,并手动添加这些情况,然后使用geom_polygon绘图(参见链接)。
  2. 将空间数据作为SF对象加载并通过geom_sf绘制(更灵活)(参见链接)。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71709463

复制
相关文章

相似问题

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