41 子弹图
用途
实际值与目标值的对照,背景色阶给出定性区间。
示例(5 张)
41-1 各馈线负载率对目标值的子弹图

41-2 线损率对考核目标的子弹图

41-3 各区域电压合格率对目标的子弹图

41-4 供电可靠性指标对目标的子弹图

41-5 各区域新能源渗透率对目标的子弹图

代码
以下 5 个函数取自 code/第六批_组合图261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。
# 摘自 code/第六批_组合图261107.py
def bl_01():
"""各馈线负载率对目标值的子弹图。"""
fig, ax = new_fig(left=0.20)
fd = ["城东", "城西", "城南", "城北", "新区"]
actual = np.array([86, 72, 94, 61, 103])
target = 80.0
for i, v in enumerate(actual):
ax.barh(i, 120, height=0.62, color="#E8EEF6", edgecolor="none")
ax.barh(i, 90, height=0.42, color="#C7D8EC", edgecolor="none")
ax.barh(i, 60, height=0.22, color="#A8C2DE", edgecolor="none")
ax.barh(i, v, height=0.5, color=C1, edgecolor="0.3", linewidth=0.5)
ax.plot([target, target], [i - 0.3, i + 0.3], color=C2, lw=1.6)
ax.set_yticks(range(len(fd)))
ax.set_yticklabels(fd)
ax.set_ylim(-0.6, len(fd) - 0.4)
ax.set_xlabel("负载率 / %")
ax.set_ylabel("馈线")
ax.set_xlim(0, 125)
save(fig, "41_子弹图", "41_子弹图_馈线负载率")
def bl_02():
"""线损率对考核目标的子弹图。"""
fig, ax = new_fig(left=0.22)
item = ["全网", "城网", "农网", "工业园", "新区"]
actual = np.array([4.62, 3.98, 5.86, 4.24, 3.42])
target = 5.0
for i, v in enumerate(actual):
ax.barh(i, 8, height=0.62, color="#E8EEF6", edgecolor="none")
ax.barh(i, 6, height=0.42, color="#C7D8EC", edgecolor="none")
ax.barh(i, 4, height=0.22, color="#A8C2DE", edgecolor="none")
ax.barh(i, v, height=0.5, color=C3, edgecolor="0.3", linewidth=0.5)
ax.plot([target, target], [i - 0.3, i + 0.3], color=C2, lw=1.6)
ax.set_yticks(range(len(item)))
ax.set_yticklabels(item)
ax.set_ylim(-0.6, len(item) - 0.4)
ax.set_xlabel("线损率 / %")
ax.set_ylabel("统计口径")
ax.set_xlim(0, 8.4)
save(fig, "41_子弹图", "41_子弹图_线损率考核")
def bl_03():
"""各区域电压合格率对目标的子弹图。"""
fig, ax = new_fig(left=0.22)
area = ["A 区", "B 区", "C 区", "D 区", "E 区"]
actual = np.array([99.62, 98.94, 97.86, 99.31, 96.72])
target = 98.0
for i, v in enumerate(actual):
ax.barh(i, 100, height=0.62, color="#E8EEF6", edgecolor="none")
ax.barh(i, 97, height=0.42, color="#C7D8EC", edgecolor="none")
ax.barh(i, 94, height=0.22, color="#A8C2DE", edgecolor="none")
ax.barh(i, v, height=0.5, color=C1, edgecolor="0.3", linewidth=0.5)
ax.plot([target, target], [i - 0.3, i + 0.3], color=C2, lw=1.6)
ax.set_yticks(range(len(area)))
ax.set_yticklabels(area)
ax.set_ylim(-0.6, len(area) - 0.4)
ax.set_xlabel("电压合格率 / %")
ax.set_ylabel("供电区域")
ax.set_xlim(92, 100.5)
save(fig, "41_子弹图", "41_子弹图_电压合格率")
def bl_04():
"""供电可靠性指标对目标的子弹图。"""
fig, ax = new_fig(left=0.22)
item = ["SAIDI", "SAIFI", "CAIDI", "ASAI"]
actual = np.array([2.86, 0.92, 3.11, 99.962])
target = np.array([3.50, 1.20, 3.50, 99.950])
for i, v in enumerate(actual):
ax.barh(i, 4.6, height=0.62, color="#E8EEF6", edgecolor="none")
ax.barh(i, 3.6, height=0.42, color="#C7D8EC", edgecolor="none")
ax.barh(i, 2.6, height=0.22, color="#A8C2DE", edgecolor="none")
ax.barh(i, v, height=0.5, color=C5, edgecolor="0.3", linewidth=0.5)
ax.plot([target[i], target[i]], [i - 0.3, i + 0.3], color=C2, lw=1.6)
ax.set_yticks(range(len(item)))
ax.set_yticklabels(item)
ax.set_ylim(-0.6, len(item) - 0.4)
ax.set_xlabel("指标值(归一到同一坐标)")
ax.set_ylabel("可靠性指标")
ax.set_xlim(0, 4.8)
save(fig, "41_子弹图", "41_子弹图_供电可靠性")
def bl_05():
"""各区域新能源渗透率对目标的子弹图。"""
fig, ax = new_fig(left=0.22)
area = ["北区", "南区", "东区", "西区", "中心区"]
actual = np.array([42, 36, 28, 46, 18])
target = 35.0
for i, v in enumerate(actual):
ax.barh(i, 60, height=0.62, color="#E8EEF6", edgecolor="none")
ax.barh(i, 45, height=0.42, color="#C7D8EC", edgecolor="none")
ax.barh(i, 30, height=0.22, color="#A8C2DE", edgecolor="none")
ax.barh(i, v, height=0.5, color=C3, edgecolor="0.3", linewidth=0.5)
ax.plot([target, target], [i - 0.3, i + 0.3], color=C2, lw=1.6)
ax.set_yticks(range(len(area)))
ax.set_yticklabels(area)
ax.set_ylim(-0.6, len(area) - 0.4)
ax.set_xlabel("新能源渗透率 / %")
ax.set_ylabel("供电区域")
ax.set_xlim(0, 62)
save(fig, "41_子弹图", "41_子弹图_新能源渗透率")
说明
- 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。
浙公网安备 33010602011771号