原文链接:http://www.juzicode.com/python-module-pyechats
Pyecharts 是基于ECharts的Python可视化库,提供30+种交互式图表类型,支持Web HTML输出,适用于数据可视化分析、报表生成和动态演示场景。
应用场景
- 业务数据可视化展示
- 实时数据监控仪表盘
- 地理信息数据映射
- 教育课件动态演示
- 科研论文图表制作
- 商业分析报告生成
安装与导入
pip install pyecharts
# 地图扩展包(可选)
pip install echarts-countries-pypkg
使用方法
1)基础柱状图
创建带坐标轴标签和数值显示的柱状图
# juzicode.com/VX公众号:juzicode
from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (
Bar()
.add_xaxis(["衬衫", "羊毛衫", "雪纺衫"])
.add_yaxis("商家A", [5, 20, 36])
.set_global_opts(title_opts=opts.TitleOpts(title="商品销量"))
)
bar.render("bar.html")
运行结果:生成交互式柱状图文件bar.html

2)折线面积图
绘制带填充效果的时序数据图表
# juzicode.com/VX公众号:juzicode
from pyecharts.charts import Line
from pyecharts import options as opts
line = (
Line()
.add_xaxis(range(2015, 2021))
.add_yaxis("平均温度", [26, 25, 28, 27, 29, 30],
areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
.set_global_opts(title_opts=opts.TitleOpts(title="年度温度变化"),
xaxis_opts=opts.AxisOpts(type_="category"))
)
line.render("line.html")
运行结果:生成带半透明填充的折线图

3)饼图绘制
展示数据占比分布,支持环形图模式
# juzicode.com/VX公众号:juzicode
from pyecharts.charts import Pie
from pyecharts import options as opts
data = [("安卓", 45), ("iOS", 30), ("Windows", 15), ("其他", 10)]
pie = (
Pie()
.add("", data, radius=["40%", "75%"])
.set_global_opts(title_opts=opts.TitleOpts(title="移动端占比"))
)
pie.render("pie.html")
运行结果:生成环形饼图显示平台分布

4)仪表盘制作
展示进度或完成率指标
# juzicode.com/VX公众号:juzicode
from pyecharts.charts import Gauge
gauge = (
Gauge()
.add("完成率", [("项目进度", 78.5)])
)
gauge.render("gauge.html")
运行结果:生成指针式仪表盘图表

5)组合图表
叠加柱状图和折线图实现双Y轴
# juzicode.com/VX公众号:juzicode
from pyecharts.charts import Bar
from pyecharts import options as opts
bar_line = (
Bar()
.add_xaxis(["Q1", "Q2", "Q3", "Q4"])
.add_yaxis("销售额", [120, 135, 148, 160], yaxis_index=0)
.extend_axis(yaxis=opts.AxisOpts(name="增长率"))
.add_yaxis("增长率", [15, 12, 18, 20], yaxis_index=1)
.set_global_opts(title_opts=opts.TitleOpts(title="季度分析"))
)
bar_line.render("combo.html")
运行结果:生成双Y轴组合图表

6)主题定制
应用预定义主题样式
# juzicode.com/VX公众号:juzicode
from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
dark_bar = (
Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
.add_xaxis(["A", "B", "C"])
.add_yaxis("数据", [10, 20, 30]))
dark_bar.render("dark.html")
运行结果:生成暗色主题柱状图

7)交互功能
添加数据区域缩放和提示框
# juzicode.com/VX公众号:juzicode
from pyecharts.charts import Line
from pyecharts import options as opts
line = (
Line()
.add_xaxis(list(range(24)))
.add_yaxis("在线人数", [200,300,550,600,...])
.set_global_opts(
datazoom_opts=opts.DataZoomOpts(),
tooltip_opts=opts.TooltipOpts(trigger="axis")))
line.render("interactive.html")
运行结果:生成可缩放的时间序列图表

总结
Pyecharts核心优势:
- 支持30+种交互式图表类型
- 灵活的配置选项系统
- 原生JavaScript交互支持
- 多种输出格式(HTML/Jupyter/图片)
注意事项:
- v1.x版本与旧版API不兼容
- 地图数据需要额外安装扩展包
- 离线使用时需配置本地资源