python填充地图

某些公司经常有需求分华东、华南、华北等自定义区域,地图展现时就需要自定义边界,本文介绍如何通过自定义边界绘制地图。

1、geopandas绘制地图

上篇文章地址:https://www.cnblogs.com/ayajing/p/14006082.html

根据上篇文章,geopandas绘图步骤很容易,直接展示绘图代码:

import matplotlib as mpl
import matplotlib.pyplot as plt
import geopandas
# from adjustText import adjust_text

mpl.rcParams["font.family"] = "SimHei"
mpl.rcParams["axes.unicode_minus"]=False # 用来正常显示负号
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签

# 读取数据
ch = geopandas.read_file('result.json')

# 绘制地图
fig, ax = plt.subplots(figsize = (6, 6), dpi = 200)

ch_map = ch.geometry.plot(ax = ax, facecolor = '#FFFFFF', edgecolor = '#C0C0C0', lw = 1)
ax.axis('off')

# 在地图上添加区名文本
# for loc, label in zip(ch.geometry.representative_point(), ch.name):
#    ax.text(loc.x, loc.y, label, size = 10, color = '000000')
    
plt.savefig('中国地图.jpg')
plt.show()

最后绘制的地图是这样的:

 

 

 2、绘制上图前可能需要原始的数据,上述代码中的result.json

  • 同上一篇文章,找到全国的地图json :http://datav.aliyun.com/tools/atlas/
  • 保存为json文件后在name后面新建一个字段area:
  • 用网站将json合并
    • 打开网站:https://mapshaper.org/
    • select文件的位置,导入数据:
    • 选择导入(import):
    •  打开控制台:

    • 在控制台中输入:dissolve 'area' -o result.json
    • 点击运行之后,会自动下载一个合并好的json文件
  • 将新的json文件的名称改为name (aere不能识别):
  •  

     最后,json文件生成

posted @ 2020-11-27 19:54  啊呀啊呀静  阅读(757)  评论(0)    收藏  举报