专栏名称: EasyCharts
EasyCharts,易图表,我们将定期推送各种数据可视化与分析教程,包括Excel(Power BI)、Origin、Sigmaplot、GraphPad、R、Python、Matlab、Tableau、D3.js等。
目录
相关文章推荐
前端早读课  ·  【开源】TinyEngine开启新篇章,服务 ... ·  昨天  
前端大全  ·  真的建议所有前端立即拿下软考(红利期) ·  4 天前  
云南省人民政府  ·  在线访谈丨我省如何构建国土空间新格局?省自然 ... ·  3 天前  
云南省人民政府  ·  在线访谈丨我省如何构建国土空间新格局?省自然 ... ·  3 天前  
奇舞精选  ·  从 DeepSeek 看25年前端的一个小趋势 ·  3 天前  
奇舞精选  ·  从 DeepSeek 看25年前端的一个小趋势 ·  3 天前  
51好读  ›  专栏  ›  EasyCharts

Python实现带南海九段线分位数地图完整可视化版本(附代码及数据)

EasyCharts  · 公众号  · 前端  · 2019-10-22 10:44

正文


中国一点都不能少!


首先声明,数据示例中的中国行政区划的数据为 简化版 ,仅能用于学习和练习,不能用于任何公开场合的出版、展示及其他应用。非法在公开场合使用,将会被追究法律责任。


先上一个最简单的实现方式,直接把南海诸岛和九段线给画上去——


这种方式实现最简单,只需要单纯的叠加一个线要素,就可以实现了,确定是地图留白的地方是在太多,严重的影响了整个地图的可视效果,一般来说,中国地图的制作方式是通过多图框组合的模式来实现,比如这样的:


把南海诸岛和九段线,独立放到一个附加的图框里面,展示出来,那么这种展示模式,在matplotlib里面是否也可以实现呢?答案是:



这种技术,在matplotlib里面称为 画中画(plot in plot) ,主要通过设定子图的figure的位置来实现的,如下所示:


核心的代码就是这两句:


left,bottom,width,height = 0.05,0.05,0.95,0.95

ax1 = fig.add_axes([left,bottom,width,height])


设定你的子图的左、下位置和宽度、长度,注意在,这里的数值,都是百分比,比如0.05,指的是距图边界0.05个宽度的位置。


因为采用的是绝对定位,所以各种数值,就靠大家自己慢慢去调整了……这是一个很考验耐心和手感的问题,而且还很考验布局感和美感——可惜这些东西虾神都没有……


可以把所有的图都放到一个大图上,然后层层叠叠的来实现。当然,你也可以排列得更好一下,那就要看耐心的程度了。

下面放出代码:


最后,代码与数据的位置如下:

https://github.com/allenlu2008/PythonDemo

里面的 014 时序分析,欢迎大家下载。

如需联系EasyCharts团队

请加微信: EasyCharts

【书籍推荐】 《R语言数据可视化之美》
【书籍推荐】 《Excel 数据之美》






请到「今天看啥」查看全文