Pyecharts 动态地图 geo()和map()的安装与用法详解

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 的操作接口简单、易上手,也极大地方便了初学者的学习。

后端开发标签