29 桑基图 Sankey

29 桑基图 Sankey

用途

能流或功率流的分配与损耗,宽度正比于流量。

示例(5 张)

29-1 燃煤电厂的能量流分配

燃煤电厂的能量流分配

29-2 变电站的有功功率流与损耗分摊

变电站的有功功率流与损耗分摊

29-3 综合能源系统的能流分配

综合能源系统的能流分配

29-4 储能系统的效率链

储能系统的效率链

29-5 工业园区能源消费结构

工业园区能源消费结构

代码

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

# 摘自 code/第五批_版式与结构261107.py

def sk_01():
    """燃煤电厂的能量流分配"""
    fig, ax = new_fig(left=0.04, bottom=0.04, right=0.96, top=0.96)
    ax.axis("off")
    s = Sankey(ax=ax, unit="MW", scale=0.0016, gap=0.5, radius=0.12,
               shoulder=0.04, offset=0.36, head_angle=150, format="%.0f")
    s.add(patchlabel="", flows=[1000, -380, -60, -560], orientations=[0, 0, 1, 0])
    s.finish()
    _pad_sankey(ax)
    ax.text(0.5, 0.95, "燃煤电厂锅炉", transform=ax.transAxes,
            ha="center", va="center", fontsize=FS)
    save(fig, "29_桑基图", "29_桑基图_燃煤电厂能流", tight=True)

def sk_02():
    """变电站的有功功率流与损耗分摊"""
    fig, ax = new_fig(left=0.04, bottom=0.04, right=0.96, top=0.96)
    ax.axis("off")
    s = Sankey(ax=ax, unit="MW", scale=0.0020, gap=0.5, radius=0.12,
               shoulder=0.04, offset=0.36, head_angle=150, format="%.1f")
    s.add(patchlabel="", flows=[120, -112.4, -4.2, -1.8, -1.6], orientations=[0, 0, -1, 1, -1])
    s.finish()
    _pad_sankey(ax)
    ax.text(0.5, 0.95, "110 kV 母线", transform=ax.transAxes,
            ha="center", va="center", fontsize=FS)
    save(fig, "29_桑基图", "29_桑基图_变电站功率流", tight=True)

def sk_03():
    """综合能源系统的能流分配"""
    fig, ax = new_fig(left=0.04, bottom=0.04, right=0.96, top=0.96)
    ax.axis("off")
    s = Sankey(ax=ax, unit="kW", scale=0.0018, gap=0.5, radius=0.12,
               shoulder=0.04, offset=0.36, head_angle=150, format="%.0f")
    s.add(patchlabel="", flows=[800, -320, -390, -90], orientations=[0, 0, -1, 1])
    s.finish()
    _pad_sankey(ax)
    ax.text(0.5, 0.95, "燃气轮机", transform=ax.transAxes,
            ha="center", va="center", fontsize=FS)
    save(fig, "29_桑基图", "29_桑基图_综合能源系统能流", tight=True)

def sk_04():
    """储能系统的效率链"""
    fig, ax = new_fig(left=0.04, bottom=0.04, right=0.96, top=0.96)
    ax.axis("off")
    s = Sankey(ax=ax, unit="kW", scale=0.0022, gap=0.5, radius=0.12,
               shoulder=0.04, offset=0.36, head_angle=150, format="%.0f")
    s.add(patchlabel="", flows=[500, -418, -38, -24, -20], orientations=[0, 0, -1, 1, -1])
    s.finish()
    _pad_sankey(ax)
    ax.text(0.5, 0.95, "储能系统", transform=ax.transAxes,
            ha="center", va="center", fontsize=FS)
    save(fig, "29_桑基图", "29_桑基图_储能效率链", tight=True)

def sk_05():
    """工业园区能源消费结构"""
    fig, ax = new_fig(left=0.04, bottom=0.04, right=0.96, top=0.96)
    ax.axis("off")
    s = Sankey(ax=ax, unit="(GW·h)", scale=0.0018, gap=0.5, radius=0.12,
               shoulder=0.04, offset=0.36, head_angle=150, format="%.0f")
    s.add(patchlabel="", flows=[860, -520, -210, -130], orientations=[0, 0, -1, 1])
    s.finish()
    _pad_sankey(ax)
    ax.text(0.5, 0.95, "园区总用电", transform=ax.transAxes,
            ha="center", va="center", fontsize=FS)
    save(fig, "29_桑基图", "29_桑基图_园区能源结构", tight=True)

说明

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