1. Pyecharts 简介
Pyecharts 是由 Python 语言开发的一个数据可视化库,基于 Echarts.js 实现。它能够提供多种数据可视化图表,包括但不限于折线图、柱状图、散点图、饼图、地图等。它的设计思路是简单易用、灵活多样,使得在 Python 中进行数据可视化更加容易和高效。
2. 安装 Pyecharts
2.1 安装前准备
在安装 Pyecharts 之前,我们需要先检查以下几个软件包是否已经安装:
- Python (版本3.6及以上)
- pip (Python 包管理器)
2.2 安装过程
2.2.1 Windows
在 Windows 上安装 Pyecharts 最简单的方式是使用 pip 安装。首先,在命令提示符或者 Powershell 中输入以下命令来安装最新的 pip 版本:
python -m pip install --upgrade pip
安装完成之后,输入以下命令安装 Pyecharts:
pip install pyecharts
2.2.2 Linux / macOS
在 Linux / macOS 上安装 Pyecharts 也很简单。首先,打开终端并输入以下命令来安装最新的 pip 版本:
pip install --upgrade pip
之后,输入以下命令来安装 Pyecharts:
pip install pyecharts
3. Pyecharts 中的地图可视化
Pyecharts 中提供了两个用于地图可视化的函数:Geo() 和 Map()。其中,Geo() 函数用于绘制地理链接图,Map() 函数用于绘制地理坐标系系列图,例如地图散点图等。
3.1 Geo() 函数
Geo() 函数用于绘制地理链接图,它的语法如下:
Geo().add_schema(maptype='china')
其中,maptype 表示地图类型,可以是全球、中国、美国、欧洲等多个地图类型。
3.2 Map() 函数
Map() 函数用于绘制地理坐标系系列图,例如地图散点图等,它的语法如下:
Map().add('series_name', data, 'china')
其中,series_name 表示系列名称,data 表示数据,'china' 表示地图类型,可以是全球、中国、美国、欧洲等多个地图类型。
4. 动态地图可视化
Pyecharts 中也可以绘制动态地图,其实现原理是通过设置 time_range 参数来控制动态地图的播放时间范围。动态地图的优势在于可以呈现一段时间内的数据变化情况,非常适用于数据分析和可视化。
4.1 动态 Geo() 地图
动态 Geo() 地图的语法如下:
from pyecharts import options as opts
from pyecharts.charts import Geo
geo = (
Geo()
.add_schema(maptype="china")
.add("", [(city, value) for city, value in zip(city_name, data)], type_='effectScatter', color='white', opacity=0.6,)
.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
.set_global_opts(
title_opts=opts.TitleOpts(title='中国新冠疫情实时动态地图'),
visualmap_opts=opts.VisualMapOpts(max_=100, is_piecewise=True),
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}"),
time_range=[start_date, end_date])
.render("china_data_疫情.html")
)
其中,type_ 参数指定图形类型,在动态地图中应该选择 effectScatter,time_range 参数控制动态地图的时间范围。
4.2 动态 Map() 地图
动态 Map() 地图的语法如下:
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.options import RangeSliderOpts
map_data = [(province, gongzhonghao_num[i], location[i]) for i, province in enumerate(province_name)]
data_min, data_max = min(gongzhonghao_num), max(gongzhonghao_num)
map_chart = (
Map()
.add("公众号数",
map_data,
"china",
label_opts=opts.LabelOpts(is_show=False),)
.set_series_opts(
tooltip_opts=opts.TooltipOpts(formatter="{b}: {c}"),
)
.set_global_opts(
title_opts=opts.TitleOpts(title="中国公众号数量分布热力图"),
visualmap_opts=opts.VisualMapOpts(
min_=data_min,
max_=data_max,
range_text=RangeSliderOpts(),
is_calculable=True,
range_color=["lightskyblue", "yellow", "orangered"],
),
timeaxis_opts=opts.TimeAxisOpts(
is_show=True,
range_slider_opts=opts.RangeSliderOpts(
start_value="2014-01",
end_value="2020-05",
orient="horizontal",
font_size=10,
),
),
)
.render("china_province_gzh_heatmap_timeaxis_charts.html")
)
这里,使用了 timeaxis_ops 参数来指定动态地图的时间范围,并使用 RangeSliderOps 来控制可调整的时间范围。
总结
本文对于 Pyecharts 中地图可视化的两种方式 Geo() 和 Map() 进行了介绍,并着重阐述了如何使用Pyecharts 制作动态地图。无论是数据分析还是数据可视化,使用 Pyecharts 提供了巨大的便利,同时,由于 Pyecharts 的操作接口简单、易上手,也极大地方便了初学者的学习。