42 漏斗图

用途

逐级筛选或逐级损耗,层级越深宽度越窄。

示例(5 张)

42-1 电能从一次能源到终端的漏斗

电能从一次能源到终端的漏斗

42-2 项目审批流程的漏斗

项目审批流程的漏斗

42-3 故障处理流程的漏斗

故障处理流程的漏斗

42-4 负荷预测精度的逐级筛选漏斗

负荷预测精度的逐级筛选漏斗

42-5 储能充放电能量链的漏斗

储能充放电能量链的漏斗

代码

以下 5 个函数取自 code/第六批_组合图261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。

# 摘自 code/第六批_组合图261107.py

def fn_01():
    """电能从一次能源到终端的漏斗。"""
    fig, ax = new_fig(left=0.26, bottom=0.19)
    stages = ["一次能源", "发电", "厂用电", "输配", "终端"]
    vals = [1000, 420, 386, 352, 331]
    y = np.arange(len(stages))[::-1]
    for i, (v, yy) in enumerate(zip(vals, y)):
        ax.barh(yy, v, height=0.62, color=PALETTE5[i], edgecolor="0.35",
                linewidth=0.5)
        text_in(ax, v + 14, yy, f"{v}", va="center")
    ax.set_yticks(y)
    ax.set_yticklabels(stages)
    ax.set_ylim(-0.6, len(stages) - 0.4)
    ax.set_xlabel("等效电量 / (GW·h)")
    ax.set_ylabel("转换环节")
    ax.set_xlim(0, 1120)
    save(fig, "42_漏斗图", "42_漏斗图_电能转换链")

def fn_02():
    """项目审批流程的漏斗。"""
    fig, ax = new_fig(left=0.26, bottom=0.19)
    stages = ["申报", "初审", "评审", "批复", "开工"]
    vals = [48, 36, 24, 18, 15]
    y = np.arange(len(stages))[::-1]
    for i, (v, yy) in enumerate(zip(vals, y)):
        ax.barh(yy, v, height=0.62, color=PALETTE5[i], edgecolor="0.35",
                linewidth=0.5)
        text_in(ax, v + 0.9, yy, f"{v}", va="center")
    ax.set_yticks(y)
    ax.set_yticklabels(stages)
    ax.set_ylim(-0.6, len(stages) - 0.4)
    ax.set_xlabel("项目数 / 项")
    ax.set_ylabel("审批环节")
    ax.set_xlim(0, 56)
    save(fig, "42_漏斗图", "42_漏斗图_项目审批流程")

def fn_03():
    """故障处理流程的漏斗。"""
    fig, ax = new_fig(left=0.26, bottom=0.19)
    stages = ["故障告警", "确认", "定位", "隔离", "恢复"]
    vals = [326, 268, 214, 176, 158]
    y = np.arange(len(stages))[::-1]
    for i, (v, yy) in enumerate(zip(vals, y)):
        ax.barh(yy, v, height=0.62, color=PALETTE5[i], edgecolor="0.35",
                linewidth=0.5)
        text_in(ax, v + 6, yy, f"{v}", va="center")
    ax.set_yticks(y)
    ax.set_yticklabels(stages)
    ax.set_ylim(-0.6, len(stages) - 0.4)
    ax.set_xlabel("事件数 / 次")
    ax.set_ylabel("处理环节")
    ax.set_xlim(0, 380)
    save(fig, "42_漏斗图", "42_漏斗图_故障处理流程")

def fn_04():
    """负荷预测精度的逐级筛选漏斗。"""
    fig, ax = new_fig(left=0.28, bottom=0.19)
    stages = ["原始样本", "剔除异常", "特征筛选", "模型训练", "有效预测"]
    vals = [8760, 8420, 7980, 7640, 7510]
    y = np.arange(len(stages))[::-1]
    for i, (v, yy) in enumerate(zip(vals, y)):
        ax.barh(yy, v, height=0.62, color=PALETTE5[i], edgecolor="0.35",
                linewidth=0.5)
        text_in(ax, v + 40, yy, f"{v}", va="center")
    ax.set_yticks(y)
    ax.set_yticklabels(stages)
    ax.set_ylim(-0.6, len(stages) - 0.4)
    ax.set_xlabel("样本数 / 条")
    ax.set_ylabel("处理步骤")
    ax.set_xlim(7200, 9200)
    save(fig, "42_漏斗图", "42_漏斗图_预测样本筛选")

def fn_05():
    """储能充放电能量链的漏斗。"""
    fig, ax = new_fig(left=0.26, bottom=0.19)
    stages = ["充电电量", "变流器", "电池存储", "放电输出", "并网送出"]
    vals = [1000, 956, 912, 856, 830]
    y = np.arange(len(stages))[::-1]
    for i, (v, yy) in enumerate(zip(vals, y)):
        ax.barh(yy, v, height=0.62, color=PALETTE5[i], edgecolor="0.35",
                linewidth=0.5)
        text_in(ax, v + 8, yy, f"{v}", va="center")
    ax.set_yticks(y)
    ax.set_yticklabels(stages)
    ax.set_ylim(-0.6, len(stages) - 0.4)
    ax.set_xlabel("电量 / (kW·h)")
    ax.set_ylabel("能量环节")
    ax.set_xlim(760, 1080)
    save(fig, "42_漏斗图", "42_漏斗图_储能能量链")

说明

  • 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
  • 图内不放标题,图题由本文件的二级/三级标题承担。
  • 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。
posted on 2026-11-08 00:12  小青蛙电气  阅读(3)  评论(0)    收藏  举报