查看原文
其他

教你4种制作Cartogram变形地图的方法

戴劭勍 GISer学习团
2024-12-23

前几天发了一个Worldmapper网站做的全球疫情地图

有朋友留言问,这种地图效果应该如何制作,当时回复说可以用QGIS中的Cartogram来制作。刚好戴劭勍童鞋发给我了一篇他之前写的文章,介绍了4种制作这种变形地图的方法,今天给大家分享下。


以下是他的文章内容,部分内容有所删减。



ArcGIS Cartogram Toolbox

01


最早看到变形地图其实还是在Esri中国的CSDN博客和ArcGIS中国培训中心的网站上。不过后者改版后,就找不到博客链接了。而且据现在的博客,插件下载地址看着也有点问题。我之前已经下载过了。如果有人需要的话可以通过文末的下载链接进行下载


软件下载后,就是这么一个安装包。

首先是运行这个exe。其实大部分都是直接Next,除了安装路径可以修改之外,这里就不详细描述了。当然exe上的93是暗示着这个插件其实原本是根据ArcGIS 9.3开发的。想用在10.0以上的版本的话,必须注册dll文件。

即打开CMD命令行,输入如下的命令。

regsvr32“F:\ArcGIS Tools\Cartograms\BnchMrkCartogram.dll”

其实就是regsvr32 + dll存放的路径。


接下来就是将工具箱添加到ArcMap中即可使用。接下来我们用一个样例数据来测试下,样例数据来源于《全球变化科学研究数据出版系统》。

数据集

内蒙古自治区乡村人口迁出对植被影响数据集(2000-2010)

下载地址

http://geodoi.ac.cn/WebCn/doi.aspx?Id=535)


原始数据如上,但是主要的乡村人口迁出的数据有0值,ArcGIS工具箱输入参数需要注意三点。

1.用于Cartogram字段的必须是整型(任何工具实现应该都需要为正值)。

2.输出必须为geodatabase。

3.修改工作空间,存储临时文件。

由于第一点,所以我们去除了0值的几个县市。选择2000年劳动变化为结果。颜色从黄到红,值是越来越大的。

接下来我们在工具面板中做个基本设置,如下图所示。

然后就可以得到变形地图啦。


QGIS Cartogram插件

02


在QGIS中有一个专门的Cartogram插件,可以直接在插件库中进行搜索安装。

接着点击软件界面上的图标(下图箭头所指的功能按钮),就会跳出Cartogram3的界面。

程序默认提供2个示例数据,当然你也可以换成你自己的数据(下图中使用的是内蒙古数据),简单设置下参数就可以制作出变形效果了。


Cartogram in R

03


除了以上的两大桌面软件,R语言中也有Cartogram的包。应该如何使用呢?

首先是安装R包。

install.packages('cartogram')

接下来就是开始撸一波代码了。

#载入所需要的包

library(cartogram)library(rgeos)library(maptools)library(sp)


#读取数据同时可视化

nmgau <- readShapePoly("F:/R/demo/cartogram/mongoliaurbanmigration.shp")spplot(nmgau, zcol = "ALabor2000")



#制作变形地图并可视化

nmgauca <- cartogram_cont(nmgau, weight = "ALabor2000", 10)spplot(nmgauca, zcol = "ALabor2000")

cartogram_cont函数是核心,其实关键的参数与QGIS的插件工具很类似。具体的可以再查询帮助文档,结果如图。

代码运行后的信息。

图形运行后的效果。

至于结果保存成文件的话,需要用到其他空间数据的包。


GeoDa

04


GeoDa是一款专门用于空间统计的软件,在软件中也有一个对应的功能按钮可以用来制作类似的效果。点击下图红框按钮即可实现Cartogram。

将这个效果与上面的变形效果进行对比,可以发现它们是有所差距了。这里其实只是利用地理位置和大小重新渲染的气泡图。




相对而言,推荐大家使用第二种方法,QGIS的Cartogram插件。

更多有关Cartogram的应用,可以去Worldmapper官网进行查看。


另外微信公众号现在支持了搜索功能,可以通过下面的关键字搜索下你感兴趣的文章。


链接:

https://pan.baidu.com/s/1V-op4e1Km8OUKBmGx9C0pQ

提取码:9bcu



继续滑动看下一个
GISer学习团
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存