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。
  • 图内不放标题,图题由本文件的二级/三级标题承担。
  • 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。
posted @ 2026-11-08 00:11  小青蛙电气  阅读(2)  评论(0)    收藏  举报