Python使用Pyecharts绘制动态地图:Map与Geo实战教程
本文介绍如何利用Python库Pyecharts绘制动态地图。通过安装pyecharts及对应地图数据包,结合pandas处理CSV数据,使用Geo组件的effectScatter类型生成带有发散动画效果的HTML动态地图。示例展示了如何循环处理月度数据,批量生成展示城市酒店分布的动态网页文件,适用于需要可视化地理分布数据的开发场景。
Pyecharts动态地图入门
许多从事数据可视化的开发者都熟悉Echarts,但对于主要使用Python的小白用户而言,Pyecharts是一个功能强大的工具。以下是一个关于如何使用该库实现动态地图的具体实践案例。
假设我们拥有一组虚拟数据,记录了全国各城市的酒店数量。现在的问题是,如何在地图上直观地展示这些数据?
环境安装与配置
首先,在Python环境中需要安装Pyecharts库。
安装完成后,还需添加相应的地图数据包以支持地理渲染。
安装Pyecharts后,根据实际需求(如城市、省份等)下载对应的地图包。以下整理了相关包列表,用户可根据需要选择下载。
pip install pyecharts
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
数据可视化实现
完成安装后,即可开始绘制图形。
from pyecharts import Bar
from pyecharts import Map, Geo
import pandas as pd
#读取数据
inpath = 'D:/Users/traindatas/map_2.csv' #数据路径
data = pd.read_csv(inpath , header = 'infer') #读取数据
#浏览数据
data.head()
数据展示如下:这里演示的是2019年1月至9月每月城市酒店数量的变化情况,其中每个月的数据以该月的1号作为代表。

由于每个城市包含9条数据,因此需要通过循环生成9张MAP地图,以展示每个月各城市的具体情况。
#取出日期
IsDuplicated = data['effectdate']
list_of_month = list(IsDuplicated.drop_duplicates())
#循环,做出每个月的分布图
for month in list_of_month:
# 城市酒店数
df = data[data['effectdate'] == month]
indexs = list(df['cityname'])
values = list(df['masterhotelid'])
geo = Geo("全国酒店分布", str(month) + "全国酒店分布", title_color="#fff", title_pos="center", width=1200, height=600, background_color='#404a59')
# type="effectScatter", is_random=True, effect_scale=5 使点具有发散性
geo.add("全国酒店分布", indexs, values, type="effectScatter", is_random=True, effect_scale=5, visual_range=[0, 900],visual_text_color="#fff", symbol_size=15, is_visualmap=True, is_roam=False)
#geo.show_config()
filepath = 'D:/Users/pythonfeature/map/' +str(month) + '_month.html'
geo.render(path=filepath)
这样便在指定文件夹下生成了9张图表。我们随机打开一张查看:虽然本地图片中的点是动态的,但由于HTML文件无法直接上传预览,这里展示了一张导出的PNG静态图片,读者可自行尝试查看动态效果。
下图即为上述代码生成的9张图表,文件格式为HTML。

打开其中一张图片进行查看~

当然,Pyecharts提供的图形种类非常丰富,后续还将分享其他类型的图形绘制方法。
以上就是本文的全部内容,希望对各位的学习有所帮助,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













