python绘制地图引用数据(如何利用python绘制三维数据地图)

如何利用python绘制三维数据地图

一、利用geojson绘制二维地图

利用geojson绘制地图主要利用matplotlib的PolyCollection。准备好geojson地图数据,利用geojson库load函数加载geojson数据,然后用PolyCollection逐个绘制多边形。

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

import geojson as json

from matplotlib.collections import PolyCollection

#读入geojson数据

json_data=json.load(open("d:/中华人民共和国.json",encoding='utf-8'))

ax=plt.subplot()

#设置绘图显示的范围,如不设置范围,则无法显示

ax.set_xlim(70,140)

ax.set_ylim(15,57)

poly=json_data['features']

#绘制地图

for i in range(0,len(poly)):

try:

po=poly[i]['geometry']["coordinates"]

lc = PolyCollection(po[0], edgecolor='black', facecolor='green', closed=False)

ax.add_collection(lc)

except(ValueError):

po=poly[i]['geometry']["coordinates"]

lc = PolyCollection(po, edgecolor='black', facecolor='green', closed=False)

ax.add_collection(lc)

except:

pass

#显示地图

Plt.show()

python绘制地图引用数据(如何利用python绘制三维数据地图)(1)

二、绘制三维数据地图

参照结合上面绘制二维地图的方面,可以绘制三维数据地图。下面以疫情确证数为例子说明绘制三维数据地图。

从百度疫情实时大数据报告网站下载疫情数据(网址为:https://voice.baidu.com/act/newpneumonia/newpneumonia?fraz=partner&paaz=gjyj),下面绘制各地累计确诊数的三维数据地图。

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

import geojson as json

from matplotlib.collections import PolyCollection

import geopandas as gp

import pandas as pd

#读入疫情数据

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

#读入地图数据以获得省份内部代表性的点

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

ax = plt.subplot(111, projection='3d')

ax.set_xlim(70,140)

ax.set_ylim(15,57)

#绘制地图

for i in range(0,len(poly)):

try:

po=poly[i]['geometry']["coordinates"]

lc = PolyCollection(po[0], edgecolor='black', facecolor='green', closed=False)

ax. add_collection3d(lc)

except(ValueError):

po=poly[i]['geometry']["coordinates"]

lc = PolyCollection(po, edgecolor='black', facecolor='green', closed=False)

ax. add_collection3d(lc)

except:

pass

绘制三维BAR图

for i in range(0,len(data["累计"])):

ax.bar3d(gdata.representative_point().x[i],gdata.representative_point().y[i],0,0.5,0.5, data["累计"][i],color= "red")plt.axis('off')

#显示数据地图

plt.show()

python绘制地图引用数据(如何利用python绘制三维数据地图)(2)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页