赞
踩
我们可以在CSDN上可以看到各种各样的地图可视化方法,那么问题来了:如何采用Python实现动态的地图可视化呢,本文姑且使用pyecharts给大家提供一下思路。
首先, 我们需要先收集一些行政区相关的数据信息,以德州市市辖区为例。
随后我们可在Python中写入程序,程序如下:
from pyecharts import options as opts from pyecharts.charts import Map, Timeline from pyecharts.faker import Faker import os import pandas as pd df=pd.read_excel('各行政区24小时数据1.xlsx') quxian=df.columns[1:] #print(quxian) flow=[] sj=list(df['时间']) for i in range(len(sj)): flow.append([]) for j in range(len(quxian)): flow[i].append(int(list(df[quxian[j]])[i])/200) #print(flow) timeline = Timeline(init_opts=opts.InitOpts(width='720px', height='350px')) for m in range(len(sj)): map=(Map().add("德州", [list(z) for z in zip(quxian, flow[m])], "德州").set_global_opts(title_opts=opts.TitleOpts(title="德州地图"), visualmap_opts=opts.VisualMapOpts())) timeline.add(chart=map,time_point=sj[m]) timeline.add_schema(is_auto_play=True, play_interval=500) timeline.render() os.system("render.html")
把程序分解开来说,就是首先导入数据。并按照和行政区划顺序生成二维列表
df=pd.read_excel('各行政区24小时数据1.xlsx')
quxian=df.columns[1:]
flow=[]
sj=list(df['时间'])
for i in range(len(sj)):
flow.append([])
for j in range(len(quxian)):
flow[i].append(int(list(df[quxian[j]])[i])/200)
随后建立时间轴,并在不同的时间节点生成相应的地图
timeline = Timeline(init_opts=opts.InitOpts(width='720px', height='350px'))
for m in range(len(sj)):
map=(Map().add("德州", [list(z) for z in zip(quxian, flow[m])], "德州").set_global_opts(title_opts=opts.TitleOpts(title="德州地图"), visualmap_opts=opts.VisualMapOpts()))
timeline.add(chart=map,time_point=sj[m])
最后,设置播放方式,生成网页
timeline.add_schema(is_auto_play=True, play_interval=500)
timeline.render()
os.system("render.html")
这样,我们就搭建好了一个动态轮播地图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。