【Python 第三方库】pyecharts

2024-01-25 00:00:00

目录:

Pyecharts 模块介绍

Pyecharts 是基于百度开源可视化库 ECharts 的 Python 数据可视化库,允许开发者使用Python语言轻松生成各种类型、高度交互式的图表。图表可以轻松渲染为独立的HTML文件,方便分享和嵌入网页。

安装依赖:

$ pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple

如需绘制地图(如中国各省地图),需要额外安装对应的地图文件包:

$ pip install echarts-china-provinces-pypkg -i https://pypi.tuna.tsinghua.edu.cn/simple
$ pip install echarts-china-cities-pypkg -i https://pypi.tuna.tsinghua.edu.cn/simple

创建图形的流程非常固定:

  • 创建实例
  • 添加数据
  • 设置配置
  • 渲染

创建柱状图

柱状图常用于比较不同类别的数据。

from pyecharts.charts import Bar
from pyecharts import options as opts

x_data = ['一月', '二月', '三月', '四月', '五月']
y_data = [10, 20, 15, 25, 30]

# 创建实例
bar = Bar()

# 添加数据
bar.add_xaxis(x_data)
bar.add_yaxis("销售额", y_data)

# 设置全局配置项(标题、坐标轴名称等)
bar.set_global_opts(
    title_opts=opts.TitleOpts(title="月度销售额柱状图"),
    xaxis_opts=opts.AxisOpts(name="月份"),
    yaxis_opts=opts.AxisOpts(name="销售额(万元)"),
)

# 渲染为 HTML 文件
bar.render("sales_bar_chart.html")

创建折线图

与上面函数式调用创建图表不同,下面示例演示了链式调用创建图表。

from pyecharts.charts import Line
from pyecharts import options as opts

# 链式调用创建折线图
line = (
    # 创建实例
    Line()
    # 添加数据
    .add_xaxis(["周一", "周二", "周三", "周四", "周五", "周六", "周日"])
    .add_yaxis("线上销量", [150, 230, 224, 218, 135, 147, 260])
    .add_yaxis("门店销量", [120, 132, 101, 134, 90, 230, 110])
    # 设置配置
    .set_global_opts(
        title_opts=opts.TitleOpts(title="周销售趋势", subtitle="单位:件"),
        toolbox_opts=opts.ToolboxOpts(),  # 显示工具箱,可保存为图片等
    )
)

# 渲染为 HTML 文件
line.render("weekly_sales_line.html")

创建饼图

饼图适合展示数据的占比关系。

from pyecharts.charts import Pie
from pyecharts import options as opts

# 数据格式为 (名称, 数值) 的列表
data = [("苹果", 40), ("香蕉", 30), ("橙子", 20), ("葡萄", 10)]

pie = (
    # 创建实例
    Pie()
    # 添加数据
    .add(
        series_name="水果销量占比",
        data_pair=data,
        radius=["35%", "55%"],  # 设置内外半径,形成环形图
    )
    # 设置配置
    .set_global_opts(
        title_opts=opts.TitleOpts(title="水果销量饼图"),
        legend_opts=opts.LegendOpts(pos_left="left", orient="vertical"), # 图例左置
    )
    .set_series_opts(
        label_opts=opts.LabelOpts(formatter="{b}: {c} ({d}%)") # 标签显示格式:名称: 数值 (百分比)
    )
)

pie.render("fruit_pie_chart.html")

创建地图

如下示例: 创建一个中国地图,指定省份显示数量和不同的颜色。

from pyecharts import options as opts
from pyecharts.charts import Map

# 准备数据
provinces = ["广东省", "北京市", "上海市", "江苏省", "浙江省", "四川省"]
values = [10430, 2151, 2423, 8055, 5508, 8302]  # 示例数值

# 创建地图实例并设置(链式调用)
china_map = (
    Map(init_opts=opts.InitOpts(width="90vw", height="90vh"))
    .add("示例数据", [list(z) for z in zip(provinces, values)], "china")
    .set_global_opts(
        title_opts=opts.TitleOpts(title="中国地图示例"),
        visualmap_opts=opts.VisualMapOpts(
            max_=12000,  # 视觉映射最大值
            min_=2000,   # 视觉映射最小值
            is_piecewise=True,  # 启用分段式显示
            # 可以自定义分段区间和颜色
            pieces=[
                {"min": 2000, "max": 5000, "label": "2000-5000", "color": "#FFE4E1"},
                {"min": 5000, "max": 8000, "label": "5000-8000", "color": "#FF7F50"},
                {"min": 8000, "max": 12000, "label": "8000-12000", "color": "#DC143C"},
            ]
        )
    )
)

china_map.render("china_map.html")  # 生成 HTML 文件

返回首页

本文总阅读量  次
皖ICP备17026209号-3
总访问量: 
总访客量: