Python轮子:数据可视化利器~pyechats

原文链接: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不兼容
  • 地图数据需要额外安装扩展包
  • 离线使用时需配置本地资源

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注