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。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。
浙公网安备 33010602011771号