对于可视化地图,Pyecharts是我以前用的最多的。
还有应该就是一些网站了,现成的工具,不需要敲代码。
而对于Matplotlib,目前我还没有使用它绘制过地图。
所以在查阅相关资料的时候,又发现了大佬造的轮子。
Python+Selenium+Matplotlib,实现中国地图可视化。
地图数据来源于民政部,真实可靠。
项目地址:https://gitee.com/jixuanfan/Map-of-China
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1156465813
由于我之前一直用「GitHub」保存代码,压根就没有注册「Gitee」。
而作者的代码以及相关数据是上传到「Gitee」上,需要注册下载。
不想注册那么多账号,所以查了一下在不登录情况下,能否下载项目代码。
CURL,是一个利用URL语法在命令行下工作的文件传输工具。
Windows或许需要安装,那还是老老实实注册账号,然后下载项目代码。
Mac和Linux应该都是内置CURL,直接使用命令就行,无需安装。
/ 01 / 地图数据获取
Get_Map,基于Python爬虫,主要用到Selenium+正则。
Selenium是一个用于测试网站的自动化测试工具,这里我们主要是用它来模拟浏览器操作,进而获取地图数据。
安装教程网上都有,推荐使用谷歌浏览器,驱动文件和浏览器版本需一致。
获取地图数据的两个接口地址。
首先是获取行政区划的代码,最小应该是到县一级。
绘制不同类型的地图,所需要的数据获取函数如下。
行政代码不清楚,网上查询一下就好咯~
数据主要包括形状、形状颜色、形状轮廓、文字、文字位置、标注点形状、标注点位置等。
具体爬取代码、数据解析及函数的相关参数,查看Map_of_China.py文件可知。
/ 02 / 地图数据呈现
Draw_Map,基于Matplotlib绘制地图。
01. 绘制省/地级/县级行政区划的轮廓
得到结果如下。
函数可设置的参数,有线条、填充、背景颜色,以及线宽、标题、图片保存路径等。
02. 绘制全国地图
因为前面已经把全国的地图数据爬取下来,所以这里就省去了下载数据的代码。
得到结果如下。
配色方案,默认设置为民政部官网上的配色。
有一些参数和轮廓图相同,不过也添加了一些新的参数。
比如南海地图位置,显示省份名称,省份名称颜色等。
03. 绘制省份地图
对于省份数据,前面我只爬取了江苏省,所以这里需要爬取广东省的地图数据才行。
得到结果如下。
绘制省份地图函数对应的参数有。
code可为省份的2位编码或者名称,此处设置为「广东」。
函数还包含绘制热力图的参数,data和by_val。
arg中的other设置为False时,表现不显示周围省份或城市的地图,默认参数为True,即显示。
04. 地级行政单位地图
得到结果如下。
此处code为地级市的四位编码。
05. 绘制热力图
将不同区域按值的大小填充不同颜色,可惜少了图例。
得到结果如下。
CSV文件具体内容格式如下。
第一列为区域名称或者编码,第二列为数值。
数据处理模块在Map_of_China.py文件中。
参数by_val,绝对大小和相对大小,通常应该都会选择绝对大小这种方式展示的。
就是作者的这个热力图,是没有图例的,等待更新~
TXT格式的数据也能使用。
06. 绘制气泡图
得到结果如下。
气泡颜色默认为黄色,可自定义参数。
发现和Pyecharts好像,相信在修改地图配色、文本字体及位置后,地图会变得更好看!
在这里还是要推荐下我自己建的Python开发学习群:1156465813,群里都是学Python开发的,如果你正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴!