分享

利用GeoPandas制作数据地图

 东西二王 2022-03-12

Geopandas是python强大的库,利用它结合matplotlib可以地理数据展示和分析。

一、利用内置的地图绘制世界地图

Geopandas内置地图文件naturalearth_lowres,读取它可以进行地图绘制。

import geopandas as gp

import matplotlib.pyplot as plt

world = gp.read_file(gp.datasets.get_path('naturalearth_lowres'))

world.plot()

plt.show()

利用GeoPandas制作数据地图

二、利用外部的geojson文件绘制数据地图

(一) 绘制分层填色分布地图

从网站(网址为:
http://datav.aliyun.com/tools/atlas/#&lat=33.521903996156105&lng=104.29849999999999&zoom=3)下载geojson中国地图数据。

用以下代码导入中国地图数据,并且导出CSV文件各省市名称。

import geopandas as pd

china=gp.read_file("d:/中华人民共和国.json")

ss= china["name"]

ss.to_csv("d:/name.csv")

从网上找到各省市2020的GDP数据(如国家统计局网站),并且填入name.csv文件里。准备好数据之后,就可以调用准备好的数据绘制分层填色分布地图。

import geopandas as gp

import matplotlib.pyplot as plt

import pandas as pd

#读入GDP数据

data=pd.read_csv("d:/name.csv",encoding="gb18030")

#读入地图数据

china=gp.read_file("d:/中华人民共和国.json")

#读入国界地图数据

chinadata=gp.read_file("d:/中华人民共和国1.json")

boundary=chinadata.iloc[4:5,:]

#合并地图数据和GDP数据

mchina=pd.merge(china,data)

fig, ax = plt.subplots(1, 1)

#绘制分层分布图

mchina.plot(column='gdp',ax=ax,legend=True)

boundary.plot(ax=ax,edgecolor="red")

plt.show()

利用GeoPandas制作数据地图

(二) 绘制bubble地图

import geopandas as gp

import matplotlib.pyplot as plt

import pandas as pd

#读入GDP数据

data=pd.read_csv("d:/name.csv",encoding="gb18030")

#读入地图数据

china=gp.read_file("d:/中华人民共和国.json")

#读入国界地图数据

chinadata=gp.read_file("d:/中华人民共和国1.json")

boundary=chinadata.iloc[4:5,:]

fig, ax = plt.subplots(1, 1)

china.plot(ax=ax,facecolor='white',edgecolor='grey')

ax.scatter(china.centroid.x,china.centroid.y,s=data['gdp']/1000,color='green')

boundary.plot(ax=ax,edgecolor="red")

plt.show()

利用GeoPandas制作数据地图

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多