我试图使用R中的地图包创建一个全球地图,我试图使用来自wrld_simpl的数据。我期待的是一个地图,其中的人口("Pop2005“变量)是绘制的。我开发的代码如下:
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()“将坐标转换为另一个投影。”
发布于 2022-02-02 08:50:58
摘自这份文件,据说
sf对象的默认绘图是所有属性的多个图,最多可达到合理的最大值。
如果您想使用基本的R plot函数,那么使用st_geometry(your_map)绘制(几何学)一个sf对象。
另一种可能性(我不建议这样做)是将绘图选项设置为1点最大值(options(sf_max.plot=1)),但这会显示第一个变量,这可能不是最好的主意。
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。在这种情况下,只需结合使用ggplot和geom_sf即可。
ggplot(world_cartogram) +
geom_sf()https://stackoverflow.com/questions/70951039
复制相似问题