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

浙公网安备 33010602011771号