🧑 博主简介:曾任某智慧城市类企业算法总监,CSDN / 稀土掘金 等平台人工智能领域优质创作者。
目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。
一、引言
在数据可视化中,主题河流图(ThemeRiver)是一种非常直观的图表,用于展示多个主题随时间变化的趋势。它特别适合展示多个时间序列数据的动态变化。本文将详细介绍如何使用 Pyecharts 绘制主题河流图,并重点介绍主题河流图的数据组织形式。
二、主题河流图的特点
主题河流图是一种动态的时间序列图表,用于展示多个主题随时间的变化趋势。每个主题在不同时间点的值用宽度表示,时间轴通常从左到右展开。主题河流图特别适合展示多个时间序列数据的动态变化,如不同产品的销售趋势、不同地区的经济发展趋势等。
三、数据组织形式
主题河流图的数据组织形式通常是一个嵌套的列表结构,每个元素代表一个时间点,每个时间点包含多个主题的值。每个主题的值是一个列表,包含时间点和该主题的值。
3.1 数据的组织形式
数据是一个二维列表,每个子列表表示一个时间点,每个时间点的长度必须与主题数量一致。例如:
data = [ ["2015/11/08", 10, "DQ"],
["2015/11/09", 15, "DQ"],
...
["2015/11/08", 36, "TY"],
["2015/11/09", 37, "TY"],
...
["2015/11/08", 21, "SS"],
["2015/11/09", 25, "SS"],
...
["2015/11/08", 10, "QG"],
["2015/11/09", 15, "QG"],
...
["2015/11/08", 22, "SY"],
["2015/11/09", 10, "SY"],
...
["2015/11/08", 10, "DD"],
["2015/11/09", 15, "DD"],
...
]
3.2 主题名称
主题名称是一个列表,每个元素代表一个主题的名称。例如:
themes = ["DQ", "TY", "SS", "QG", "SY", "DD"]
四、绘制主题河流图的步骤
4.1 安装 Pyecharts
在开始之前,确保已经安装了 Pyecharts。可以通过以下命令安装:
pip install pyecharts
4.2 准备数据
根据主题河流图的数据组织形式,准备你的数据。以下是一个完整的例子:
data = [ ["2015/11/08", 10, "DQ"],
["2015/11/09", 15, "DQ"],
...
["2015/11/08", 36, "TY"],
["2015/11/09", 37, "TY"],
...
["2015/11/08", 21, "SS"],
["2015/11/09", 25, "SS"],
...
["2015/11/08", 10, "QG"],
["2015/11/09", 15, "QG"],
...
["2015/11/08", 22, "SY"],
["2015/11/09", 10, "SY"],
...
["2015/11/08", 10, "DD"],
["2015/11/09", 15, "DD"],
...
]
themes = ["DQ", "TY", "SS", "QG", "SY", "DD"]
4.3 初始化主题河流图
使用 Pyecharts 的 ThemeRiver 组件来绘制主题河流图。
from pyecharts.charts import ThemeRiver
from pyecharts import options as opts
# 初始化主题河流图
theme_river = ThemeRiver(init_opts=opts.InitOpts(width="1000px", height="600px", bg_color="#0d0735"))
4.4 添加数据
将准备好的数据添加到主题河流图中。
theme_river.add(
series_name=themes,
data=data,
singleaxis_opts=opts.SingleAxisOpts(
pos_top="50", pos_bottom="50", type_="time"
),
)
4.5 设置全局选项
设置主题河流图的全局选项,如标题、视觉映射等。
theme_river.set_global_opts(
tooltip_opts=opts.TooltipOpts(trigger="axis", axis_pointer_type="line")
)
4.6 渲染图表
将主题河流图渲染为 HTML 文件,以便查看效果。
theme_river.render("主题河流图示例.html")
五、运行结果
运行上述代码后,会生成一个名为 主题河流图示例.html 的文件。打开该文件,可以看到如下效果:
5.1 主题河流图展示
主题河流图展示了多个主题随时间的变化趋势。每个主题在不同时间点的值用宽度表示,时间轴从左到右展开。通过不同的颜色区分不同的主题,可以直观地看到每个主题在不同时间点的变化趋势。
5.2 数据可视化
主题河流图特别适合展示多个时间序列数据的动态变化。通过视觉映射(VisualMap),数据值被分为不同的区间,每个区间用不同的颜色表示。这使得我们能够直观地看到不同主题在不同时间点的差异。
六、总结
本文详细介绍了如何使用 Pyecharts 绘制主题河流图,并重点介绍了主题河流图的数据组织形式。通过嵌套的列表结构,我们可以轻松地组织和展示多个时间序列数据。主题河流图不仅美观,而且非常直观,特别适合展示多个时间序列数据的动态变化。
如果您在人工智能领域遇到技术难题,或是需要专业支持,无论是技术咨询、项目开发还是个性化解决方案,我都可以为您提供专业服务,如有需要可站内私信或添加下方VX名片(ID:xf982831907)
期待与您一起交流,共同探索AI的更多可能!