首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的全球地图

R中的全球地图
EN

Stack Overflow用户
提问于 2022-02-02 05:51:20
回答 1查看 171关注 0票数 2

我试图使用R中的地图包创建一个全球地图,我试图使用来自wrld_simpl的数据。我期待的是一个地图,其中的人口("Pop2005“变量)是绘制的。我开发的代码如下:

代码语言:javascript
复制
data(wrld_simpl)
world<-wrld_simpl

world_sf = st_as_sf(world)
world_sf_proj = st_transform(world_sf, crs = 3785)

world_cartogram <- cartogram_cont(world_sf_proj, "POP2005")
plot(world_cartogram)

尽管如此,这还是产生了以下数字:

你知道密码有什么问题吗?也许是CRS?我尝试使用其他CRS,但我得到了以下错误:"Error:使用非投影地图。此函数不能为经纬度数据提供正确的质心和距离:使用"st_transform()“将坐标转换为另一个投影。”

EN

回答 1

Stack Overflow用户

发布于 2022-02-02 08:50:58

摘自这份文件,据说

sf对象的默认绘图是所有属性的多个图,最多可达到合理的最大值。

如果您想使用基本的R plot函数,那么使用st_geometry(your_map)绘制(几何学)一个sf对象。

另一种可能性(我不建议这样做)是将绘图选项设置为1点最大值(options(sf_max.plot=1)),但这会显示第一个变量,这可能不是最好的主意。

代码语言:javascript
复制
library(sf)
library(spData)
library(cartogram)
library(tidyverse)

world_sf = st_as_sf(world)
world_sf_proj = st_transform(world_sf, crs = 3785)
world_cartogram <- cartogram_cont(world_sf_proj, "pop")

plot(st_geometry(world_cartogram))

现在,sf特别适合于ggplot2和tidyverse。在这种情况下,只需结合使用ggplotgeom_sf即可。

代码语言:javascript
复制
ggplot(world_cartogram) +
  geom_sf()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70951039

复制
相关文章

相似问题

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