32 区间条 broken_barh
32 区间条 broken_barh
用途
时间区间的横向条,甘特图与运行状态带的基础画法。
示例(5 张)
32-1 变电站设备检修计划甘特图

32-2 配网改造工程施工进度

32-3 储能电站日运行状态区间

32-4 年度计划停电窗口

32-5 保护定值区间的切换时序

代码
以下 5 个函数取自 code/第五批_版式与结构261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。
# 摘自 code/第五批_版式与结构261107.py
def bh_01():
"""变电站设备检修计划甘特图。"""
fig, ax = new_fig(left=0.31)
tasks = ["主变 T1", "断路器 QF1", "隔离开关 QS", "避雷器 F1", "母线 PT"]
plan = [[(2, 3), (12, 2)], [(6, 4)], [(9, 3), (20, 2)], [(15, 2)], [(1, 2), (22, 2)]]
for i, spans in enumerate(plan):
ax.broken_barh(spans, (i - 0.32, 0.64), facecolors=COLORS[i % 4],
edgecolor="0.35", linewidth=0.5)
ax.set_yticks(range(len(tasks)))
ax.set_yticklabels(tasks)
ax.set_ylim(-0.7, len(tasks) - 0.3)
ax.set_xlabel("计划时间 " + IT["t"] + " / d")
ax.set_ylabel("设备")
ax.set_xlim(0, 25)
save(fig, "32_区间条", "32_区间条_设备检修计划")
def bh_02():
"""配网改造工程施工进度。"""
fig, ax = new_fig(left=0.26)
tasks = ["土建开挖", "电缆敷设", "设备安装", "接线调试", "送电验收"]
plan = [[(0, 4)], [(3, 5)], [(7, 4)], [(10, 3)], [(12, 2)]]
for i, spans in enumerate(plan):
ax.broken_barh(spans, (i - 0.3, 0.6), facecolors=PALETTE5[i],
edgecolor="0.35", linewidth=0.5)
ax.set_yticks(range(len(tasks)))
ax.set_yticklabels(tasks)
ax.set_ylim(-0.7, len(tasks) - 0.3)
ax.set_xlabel("工期 " + IT["t"] + " / 周")
ax.set_ylabel("施工工序")
ax.set_xlim(0, 15)
save(fig, "32_区间条", "32_区间条_施工进度")
def bh_03():
"""储能电站日运行状态区间。"""
fig, ax = new_fig(left=0.24)
tasks = ["充电", "放电", "待机", "检修"]
plan = [[(1, 6)], [(18, 4)], [(7, 11), (22, 2)], [(12, 1)]]
for i, spans in enumerate(plan):
ax.broken_barh(spans, (i - 0.3, 0.6), facecolors=COLORS[i % 4],
edgecolor="0.35", linewidth=0.5)
ax.set_yticks(range(len(tasks)))
ax.set_yticklabels(tasks)
ax.set_ylim(-0.7, len(tasks) - 0.3)
ax.set_xlabel("时刻 " + IT["t"] + " / h")
ax.set_ylabel("运行状态")
ax.set_xlim(0, 24)
ax.set_xticks([0, 4, 8, 12, 16, 20, 24])
save(fig, "32_区间条", "32_区间条_储能运行状态")
def bh_04():
"""年度计划停电窗口。"""
fig, ax = new_fig(left=0.22)
feeders = ["L1", "L2", "L3", "L4"]
plan = [[(30, 4)], [(92, 3), (210, 4)], [(150, 5)], [(260, 3), (320, 2)]]
for i, spans in enumerate(plan):
ax.broken_barh(spans, (i - 0.3, 0.6), facecolors=PALETTE5[i],
edgecolor="0.35", linewidth=0.5)
ax.set_yticks(range(len(feeders)))
ax.set_yticklabels(feeders)
ax.set_ylim(-0.7, len(feeders) - 0.3)
ax.set_xlabel("一年中的日序 " + IT["t"] + " / d")
ax.set_ylabel("馈线")
ax.set_xlim(0, 365)
save(fig, "32_区间条", "32_区间条_计划停电窗口")
def bh_05():
"""保护定值区间的切换时序。"""
fig, ax = new_fig(left=0.24)
groups = ["定值区 1", "定值区 2", "定值区 3"]
plan = [[(0, 8), (18, 6)], [(8, 10)], [(14, 4), (24, 4)]]
for i, spans in enumerate(plan):
ax.broken_barh(spans, (i - 0.3, 0.6), facecolors=COLORS[i],
edgecolor="0.35", linewidth=0.5)
ax.set_yticks(range(len(groups)))
ax.set_yticklabels(groups)
ax.set_ylim(-0.7, len(groups) - 0.3)
ax.set_xlabel("时刻 " + IT["t"] + " / h")
ax.set_ylabel("保护定值区")
ax.set_xlim(0, 28)
save(fig, "32_区间条", "32_区间条_保护定值切换")
说明
- 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。

浙公网安备 33010602011771号