### 创建 PyEcharts 时间线轮播多图的组合图表
在 PyEcharts 中,时间线(Timeline)组件可以用于实现轮播多图效果。通过将多个图表按时间顺序排列,用户可以动态查看不同时间段的数据变化。以下是一个详细的实现方法[^1]。
#### 1. 安装依赖
首先需要确保安装了 PyEcharts 库。如果尚未安装,可以通过以下命令完成:
```bash
pip install pyecharts
```
#### 2. 数据准备
假设我们有北京市、天津市、上海市和重庆市近20年的人口数据,存储在一个字典中。以下是示例数据结构:
```python
data = {
"北京": [1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600, 2700, 2800, 2900],
"天津": [800, 850, 900, 950, 1000, 1050, 1100, 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500, 1550, 1600, 1650, 1700, 1750],
"上海": [1200, 1250, 1300, 1350, 1400, 1450, 1500, 1550, 1600, 1650, 1700, 1750, 1800, 1850, 1900, 1950, 2000, 2050, 2100, 2150],
"重庆": [1100, 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500, 1550, 1600, 1650, 1700, 1750, 1800, 1850, 1900, 1950, 2000, 2050]
}
years = list(range(2003, 2023))
```
#### 3. 创建时间线轮播多图
以下是使用 PyEcharts 创建时间线轮播多图的代码示例:
```python
from pyecharts.charts import Line, Timeline
from pyecharts import options as opts
# 初始化时间线对象
timeline = Timeline()
# 遍历年份,为每个年份生成一个折线图
for i in range(len(years)):
line = (
Line()
.add_xaxis(["北京", "天津", "上海", "重庆"])
.add_yaxis("人口数量", [data["北京"][i], data["天津"][i], data["上海"][i], data["重庆"][i]])
.set_global_opts(
title_opts=opts.TitleOpts(title=f"{years[i]} 年人口数据"),
yaxis_opts=opts.AxisOpts(name="人口(万人)"),
xaxis_opts=opts.AxisOpts(name="城市")
)
)
timeline.add(line, f"{years[i]}") # 将折线图添加到时间线中
# 设置时间线的全局配置项
timeline.add_schema(
play_interval=1000, # 自动播放的时间间隔(毫秒)
is_timeline_show=True, # 是否显示时间线
is_auto_play=True, # 是否自动播放
is_loop_play=False # 是否循环播放
)
# 渲染图表为 HTML 文件
timeline.render("timeline_population.html")
```
#### 4. 说明
- `Timeline` 是 PyEcharts 提供的时间线组件,用于管理多个图表并支持轮播效果。
- `add` 方法将每个年份对应的折线图添加到时间线中。
- `add_schema` 方法用于设置时间线的行为,例如是否自动播放、播放速度等[^2]。
#### 5. 示例效果
运行上述代码后,会生成一个名为 `timeline_population.html` 的文件。打开该文件时,可以看到一个时间轮播图,展示北京市、天津市、上海市和重庆市在不同年份的人口变化情况。
---
###