第十七章:Python数据可视化工工具-Pyecharts库
一、Pyecharts简介
资源绑定附上完整资源供读者参考学习!
Pyecharts是一个基于百度开源可视化库ECharts的Python数据可视化工具,支持生成交互式的HTML格式图表。相较于Matplotlib等静态图表库,Pyecharts具有以下优势:
-
丰富的图表类型(30+)
-
动态交互功能(数据筛选、缩放等)
-
简洁的API设计
-
良好的网页兼容性
二、环境配置
安装命令:
pip install pyecharts
推荐配合Jupyter Notebook使用(需安装jupyter-echarts
插件)或直接生成HTML文件。
三、核心概念解析
1. Chart类体系
Pyecharts提供Bar
、Line
、Pie
、Scatter
等类对应不同图表类型,均继承自基类Chart
。
2. 配置项(Option)
通过set_global_opts()
和set_series_opts()
配置图表:
Python
from pyecharts.charts import Bar
bar = Bar()
bar.set_global_opts(
title_opts={"text": "销售数据"},
toolbox_opts={"show": True} # 显示工具箱
)
3. 数据格式
支持多种数据格式:
Python
from pyecharts.charts import Bar
bar = Bar()
bar.set_global_opts(
title_opts={"text": "销售数据"},
toolbox_opts={"show": True} # 显示工具箱
)
# 方式1:分别添加X/Y轴
bar.add_xaxis(["手机", "电脑", "平板"])
bar.add_yaxis("销售额", [1200, 800, 450])
# 方式2:二维数据
bar.add_dataset("", [["手机",1200], ["电脑",800], ["平板",450]])
四、常用图表类型及示例
1. 折线图(Line Chart)
折线图用于展示数据随时间或其他连续变量的变化趋势。
Python
from pyecharts.charts import Line
from pyecharts import options as opts
dates = ["2023-01-01", "2023-02-01", "2023-03-01", "2023-04-01", "2023-05-01", "2023-06-01"]
stock_a = [100, 105, 110, 108, 115, 120]
stock_b = [50, 48, 52, 55, 53, 57]
stock_c = [200, 195, 190, 192, 198, 205]
line = Line()
line.add_xaxis(dates)
line.add_yaxis("A股", stock_a)
line.add_yaxis("B股", stock_b)
line.add_yaxis("C股", stock_c)
line.set_global_opts(
title_opts=opts.TitleOpts(title="A, B, C股价月增长"),
legend_opts=opts.LegendOpts(is_show=True),
tooltip_opts=opts.TooltipOpts(trigger="axis")
)
line.render("折线图.html")
2. 柱状图(Bar Chart)
柱状图用于比较不同类别数据的大小关系。
Python
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(["A", "B", "C", "D", "E"])
bar.add_yaxis("柱状图示例", [25, 40, 30, 35, 20])
bar.set_global_opts(
title_opts=opts.TitleOpts(title="柱状图示例"),
tooltip_opts=opts.TooltipOpts(trigger="axis")
)
bar.render("柱状图.html")
3. 饼图(Pie Chart)
饼图用于展示各部分在整体中的占比关系。
Python
from pyecharts.charts import Pie
from pyecharts import options as opts
pie = Pie()
pie.add("", [list(z) for z in zip(["A", "B", "C", "D", "E"], [25, 40, 30, 35, 20])])
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图示例"))
pie.render("饼图.html")
4. 散点图(Scatter Chart)
散点图用于分析两个变量之间的相关性。
Python
from pyecharts.charts import Scatter
from pyecharts import options as opts
import random
scatter = Scatter()
scatter.add_xaxis([random.randint(0, 100) for _ in range(100)])
scatter.add_yaxis("", [random.randint(0, 100) for _ in range(100)])
scatter.set_global_opts(
title_opts=opts.TitleOpts(title="散点图示例"),
xaxis_opts=opts.AxisOpts(type_="value"),
yaxis_opts=opts.AxisOpts(type_="value")
)
scatter.render("散点图.html")
五、高级功能与配置
1. 数据缩放(Data Zoom)
数据缩放功能允许用户在包含大量数据的图表中,通过拖动滑块或选择特定区域来放大查看感兴趣的局部数据。
Python
from pyecharts.charts import Line
from pyecharts import options as opts
import numpy as np
line = Line()
line.add_xaxis(list(range(1, 1001)))
line.add_yaxis("随机数据", np.random.rand(1000).tolist())
line.set_global_opts(
datazoom_opts=opts.DataZoomOpts(
is_show=True,
type_="slider",
range_start=0,
range_end=100
)
)
line.render("数据缩放.html")
2. 交互事件(Interaction Events)
通过事件监听,可以为图表元素添加点击、双击、鼠标悬停等事件,实现自定义的交互逻辑。
Python
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(["A", "B", "C", "D", "E"])
bar.add_yaxis("系列1", [25, 40, 30, 35, 20])
bar.set_global_opts(
title_opts=opts.TitleOpts(title="柱状图示例"),
tooltip_opts=opts.TooltipOpts(is_show=True),
)
bar.set_series_opts(
label_opts=opts.LabelOpts(is_show=True),
itemstyle_opts={
"normal": {
"onEvents": {
"click": "function(params) {"
"alert('点击了 ' + params.name + ' 的 ' + params.seriesName + ',值为 ' + params.value);"
"}"
}
}
}
)
bar.render("交互事件.html")
3. 主题切换(Theme Switching)
Pyecharts支持多种内置主题,并允许用户自定义主题,满足不同的视觉风格需求。
Python
from pyecharts.charts import Line
from pyecharts import options as opts
line = Line(init_opts=opts.InitOpts(theme="dark"))
line.add_xaxis(["A", "B", "C", "D", "E"])
line.add_yaxis("系列1", [25, 40, 30, 35, 20])
line.set_global_opts(
title_opts=opts.TitleOpts(title="暗黑主题示例")
)
line.render("主题切换.html")
六、Pyecharts常用函数及参数总结
函数/方法 | 用途 | 参数说明 |
---|---|---|
add_xaxis() | 添加X轴数据 | data (数据列表) |
add_yaxis() | 添加Y轴数据 | series_name (系列名称),data (数据列表) |
set_global_opts() | 设置全局配置项 | title_opts (标题配置),legend_opts (图例配置),toolbox_opts (工具箱配置)等 |
set_series_opts() | 设置系列配置项 | label_opts (标签配置),linestyle_opts (线条样式配置)等 |
render() | 渲染图表为HTML文件 | path (输出文件路径) |
add_schema() | 添加时间轴方案 | play_interval (自动播放间隔)等 |
set_series_opts() | 设置系列选项 | label_opts (标签选项),linestyle_opts (线条样式选项)等 |
七、总结
Pyecharts是一个功能强大的数据可视化库,不仅提供了丰富的图表类型和配置选项,还支持灵活的交互功能和主题切换。通过实际的代码示例,我们深入探讨了每个功能的实现细节和应用场景,希望能帮助读者在实际开发中更加得心应手。在未来的数据可视化领域,Pyecharts将继续发挥其独特的优势,为用户带来更加精彩和专业的可视化体验。资源绑定附上完整资源供读者参考学习!