Python ECharts 完整入门与实战教程
Python ECharts 完整入门与实战教程
一、教程概述
ECharts 是百度开源的一款高性能、功能丰富的前端数据可视化图表库,支持折线图、柱状图、饼图、地图、热力图等数十种图表类型,具备流畅的动画效果和灵活的交互能力。
Python ECharts(pyecharts) 是 ECharts 的 Python 封装库,无需编写 HTML、JS 代码,仅通过 Python 脚本即可快速生成高颜值、可交互的 ECharts 图表,最终输出 HTML 文件直接在浏览器查看,完美适配数据分析、数据报表、可视化大屏等场景。
本教程从零开始,涵盖环境安装、基础语法、核心图表实战、样式配置、进阶技巧,适合 Python 数据分析初学者快速上手。
二、环境准备与安装
2.1 版本说明
pyecharts 分为 v1 和 v0 两个版本,v1 为全新重构版本,语法简洁、功能更强,本教程基于最新稳定版 pyecharts v2.x 编写,仅适配 v1+ 版本。
2.2 安装依赖
通过 pip 一键安装官方稳定版,命令如下:
pip install pyecharts -U
安装完成后,可通过以下代码验证是否安装成功:
import pyecharts
# 打印版本号,确认安装成功
print(pyecharts.__version__)
三、pyecharts 核心工作原理
理解核心原理可快速掌握所有图表的制作逻辑,pyecharts 工作流程固定:
-
创建图表实例:初始化对应图表对象(折线图、柱状图等);
-
配置全局参数:设置标题、坐标轴、图例、工具箱、主题等;
-
添加数据系列:传入 x 轴、y 轴数据,绑定图表数据;
-
生成渲染文件:导出为 HTML 文件,浏览器打开即可查看交互图表。
所有图表均遵循 初始化 - 配置 - 加数据 - 渲染 四步流程,上手门槛极低。
四、基础图表实战(入门必学)
本节讲解最常用的 4 类基础图表:柱状图、折线图、饼图、散点图,附带完整可运行代码。
4.1 柱状图(Bar)—— 类别数据对比
柱状图适用于不同类别数据的大小对比,是数据分析最常用的图表。
from pyecharts.charts import Bar
from pyecharts import options as opts
# 1. 准备数据
x_data = ["产品A", "产品B", "产品C", "产品D", "产品E"]
y_data = [120, 200, 150, 80, 180]
# 2. 初始化柱状图 + 配置全局项
bar = (
Bar()
# 设置x、y轴数据
.add_xaxis(x_data)
.add_yaxis("月度销量", y_data)
# 全局配置:标题、坐标轴名称
.set_global_opts(
title_opts=opts.TitleOpts(title="产品月度销量柱状图", subtitle="2026年6月数据"),
xaxis_opts=opts.AxisOpts(name="产品类别"),
yaxis_opts=opts.AxisOpts(name="销量(件)"),
)
)
# 3. 渲染为HTML文件
bar.render("柱状图销量统计.html")
print("柱状图生成完成!")
运行效果:生成 HTML 文件,打开后可查看带标题、坐标轴、图例的交互式柱状图,支持鼠标悬浮查看具体数值。
4.2 折线图(Line)—— 趋势数据展示
折线图适用于展示数据随时间、顺序维度的变化趋势,如销量走势、温度变化等。
from pyecharts.charts import Line
from pyecharts import options as opts
# 时间维度数据
x_data = ["1月", "2月", "3月", "4月", "5月", "6月"]
# 两组对比数据
y_data1 = [90, 110, 130, 125, 160, 180]
y_data2 = [70, 95, 100, 140, 155, 170]
line = (
Line()
.add_xaxis(x_data)
# 添加两条数据曲线
.add_yaxis("线上销量", y_data1, is_smooth=True) # 平滑曲线
.add_yaxis("线下销量", y_data2, is_smooth=True)
.set_global_opts(
title_opts=opts.TitleOpts(title="2026年销量趋势折线图"),
xaxis_opts=opts.AxisOpts(name="月份"),
yaxis_opts=opts.AxisOpts(name="销量(件)"),
# 开启数据缩放
datazoom_opts=[opts.DataZoomOpts()],
)
)
line.render("折线图销量趋势.html")
print("折线图生成完成!")
核心参数:is_smooth=True 开启平滑曲线,提升图表美观度。
4.3 饼图(Pie)—— 占比数据分析
饼图用于展示各数据占整体的比例关系,适用于份额、占比统计场景。
from pyecharts.charts import Pie
from pyecharts import options as opts
# 饼图数据格式:[(名称1, 数值1), (名称2, 数值2)]
pie_data = [("一线城市", 45), ("二线城市", 30), ("三线城市", 15), ("其他", 10)]
pie = (
Pie()
.add(series_name="市场占比", data_pair=pie_data, radius=["30%", "75%"]) # 环形饼图
.set_global_opts(
title_opts=opts.TitleOpts(title="产品市场占比饼图"),
legend_opts=opts.LegendOpts(orient="vertical", pos_top="15%", pos_left="2%"),
)
# 显示百分比
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}%"))
)
pie.render("饼图市场占比.html")
print("饼图生成完成!")
核心参数:radius=["30%", "75%"] 实现环形饼图,删除该参数即为普通实心饼图。
4.4 散点图(Scatter)—— 数据相关性分析
散点图用于展示两组数据的相关性,适用于变量关联分析。
from pyecharts.charts import Scatter
from pyecharts import options as opts
x_data = [10, 20, 30, 40, 50, 60]
y_data = [15, 28, 32, 45, 55, 68]
scatter = (
Scatter()
.add_xaxis(x_data)
.add_yaxis("投入-产出数据", y_data)
.set_global_opts(
title_opts=opts.TitleOpts(title="投入产出相关性散点图"),
xaxis_opts=opts.AxisOpts(name="投入成本(万)"),
yaxis_opts=opts.AxisOpts(name="产出收益(万)"),
)
)
scatter.render("散点图相关性分析.html")
print("散点图生成完成!")
五、常用全局配置详解
pyecharts 的核心自定义功能集中在 set_global_opts() 全局配置,掌握以下常用配置可实现90%的图表美化需求。
5.1 标题配置(TitleOpts)
-
title:主标题文本 -
subtitle:副标题文本 -
title_textstyle_opts:主标题字体样式(大小、颜色、字体)
示例:
title_opts=opts.TitleOpts(
title="自定义标题",
subtitle="数据来源:2026年度统计",
title_textstyle_opts=opts.TextStyleOpts(font_size=18, color="#333333")
)
5.2 图例配置(LegendOpts)
-
orient:图例排列方向,vertical垂直、horizontal水平 -
pos_top/pos_bottom/pos_left/pos_right:图例位置
5.3 工具箱配置(ToolboxOpts)
开启图表右上角工具箱,支持保存图片、数据视图、刷新、缩放等功能:
toolbox_opts=opts.ToolboxOpts(is_show=True)
5.4 主题配色配置
pyecharts 内置十余种精美主题,直接引用即可切换整体配色风格,常用主题:Macarons(马卡龙清新风)、Dark(暗黑科技风)、Westeros(简约高级风)。
使用示例:
from pyecharts.globals import ThemeType
# 初始化图表时指定主题
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))
六、进阶实战:组合图表
pyecharts 支持将多种图表组合展示(如柱状图+折线图),实现多维度数据对比,是报表常用功能。
from pyecharts.charts import Bar, Line
from pyecharts import options as opts
from pyecharts.globals import ThemeType
# 数据准备
x_data = ["1月", "2月", "3月", "4月", "5月", "6月"]
sale_data = [120, 190, 150, 220, 180, 250]
profit_data = [12, 19, 15, 22, 18, 25]
# 初始化柱状图(销量)
bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.MACARONS))
.add_xaxis(x_data)
.add_yaxis("月度销量", sale_data)
.set_global_opts(title_opts=opts.TitleOpts(title="销量+利润组合图表"))
)
# 初始化折线图(利润)
line = (
Line()
.add_xaxis(x_data)
.add_yaxis("月度利润", profit_data)
)
# 组合图表:折线图叠加到柱状图上
bar.overlap(line)
# 渲染输出
bar.render("组合图表销量利润.html")
print("组合图表生成完成!")
七、常见问题与解决方案
7.1 图表空白、无数据
原因:x 轴、y 轴数据长度不一致、数据格式错误(传入非列表/元组数据)。
解决方案:保证 x、y 数据长度统一,数据为标准列表格式。
7.2 中文乱码问题
pyecharts v1+ 版本已默认修复中文乱码,无需手动配置,旧版本若出现乱码可升级库版本。
7.3 如何直接在 Jupyter 中展示图表
无需 render() 方法,直接在 Jupyter 单元格末尾输出图表对象即可实时预览。
八、拓展学习方向
-
高级图表:地图(Geo/Map)、热力图、雷达图、树形图、水球图;
-
可视化大屏:通过
Page、Grid组件拼接多图表,制作数据大屏; -
动态数据:结合爬虫、数据库实时更新图表数据,实现动态可视化;
-
Web 集成:结合 Flask/Django 将图表嵌入网页,实现在线数据展示。
九、教程总结
pyecharts 凭借零前端代码、开发高效、交互美观的优势,成为 Python 数据可视化的核心工具之一。本教程覆盖了环境安装、核心语法、基础图表、自定义配置、组合图表等核心内容,掌握固定的图表开发流程后,可快速复刻各类可视化图表,满足日常数据分析、报表制作、项目可视化需求。
(注:部分内容可能由 AI 生成)
更多推荐


所有评论(0)