39 人口金字塔式双向条形
39 人口金字塔式双向条形
用途
左右对称的双向条形,适合充放电、正反向无功这类对立量。
示例(5 张)
39-1 分时负荷进出对比金字塔(受入/送出)

39-2 发用电量对比金字塔

39-3 储能充放电功率对比金字塔

39-4 正反向无功功率对比金字塔

39-5 两区域负荷对比金字塔

代码
以下 5 个函数取自 code/第六批_组合图261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。
# 摘自 code/第六批_组合图261107.py
def py_01():
"""分时负荷进出对比金字塔(受入/送出)。"""
fig, ax = new_fig(left=0.22)
seg = ["0-4", "4-8", "8-12", "12-16", "16-20", "20-24"]
recv = np.array([210, 168, 92, 136, 74, 182])
send = np.array([46, 32, 188, 154, 226, 58])
y = np.arange(len(seg))
ax.barh(y, recv, height=0.62, color=C1, edgecolor="0.35", linewidth=0.5,
label="受入")
ax.barh(y, -send, height=0.62, color=C3, edgecolor="0.35", linewidth=0.5,
label="送出")
ax.axvline(0, color="0.3", lw=0.6)
ax.set_yticks(y)
ax.set_yticklabels(seg)
ax.set_xlabel("功率 / MW(左为送出,右为受入)")
ax.set_ylabel("时段 / h")
ax.set_xlim(-280, 280)
legend(ax, "lower right", ncol=1)
save(fig, "39_人口金字塔", "39_人口金字塔_分时受入送出")
def py_02():
"""发用电量对比金字塔。"""
fig, ax = new_fig(left=0.20)
mon = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
gen = np.array([182, 196, 264, 318, 402, 438, 486, 472, 388, 296, 214, 178])
use = np.array([230, 218, 246, 262, 318, 362, 410, 402, 336, 286, 252, 236])
y = np.arange(len(mon))
ax.barh(y, use, height=0.62, color=C1, edgecolor="0.35", linewidth=0.5,
label="用电量")
ax.barh(y, -gen, height=0.62, color=C3, edgecolor="0.35", linewidth=0.5,
label="发电量")
ax.axvline(0, color="0.3", lw=0.6)
ax.set_yticks(y)
ax.set_yticklabels(mon)
ax.set_xlabel("电量 / (GW·h)(左为发电,右为用电)")
ax.set_ylabel("月份")
ax.set_xlim(-560, 560)
legend(ax, "lower left", ncol=1)
save(fig, "39_人口金字塔", "39_人口金字塔_发用电量对比")
def py_03():
"""储能充放电功率对比金字塔。"""
fig, ax = new_fig(left=0.20)
hours = ["0-3", "3-6", "6-9", "9-12", "12-15", "15-18", "18-21", "21-24"]
chg = np.array([120, 150, 60, 20, 10, 30, 40, 110])
dis = np.array([10, 20, 90, 140, 130, 110, 170, 30])
y = np.arange(len(hours))
ax.barh(y, dis, height=0.64, color=C3, edgecolor="0.35", linewidth=0.5,
label="放电")
ax.barh(y, -chg, height=0.64, color=C1, edgecolor="0.35", linewidth=0.5,
label="充电")
ax.axvline(0, color="0.3", lw=0.6)
ax.set_yticks(y)
ax.set_yticklabels(hours)
ax.set_xlabel("功率 / kW(左为充电,右为放电)")
ax.set_ylabel("时段 / h")
ax.set_xlim(-200, 200)
legend(ax, "lower right", ncol=1)
save(fig, "39_人口金字塔", "39_人口金字塔_充放电功率")
def py_04():
"""正反向无功功率对比金字塔。"""
fig, ax = new_fig(left=0.20)
hours = ["0-4", "4-8", "8-12", "12-16", "16-20", "20-24"]
cap = np.array([60, 40, 20, 30, 15, 55])
ind = np.array([12, 45, 120, 105, 140, 25])
y = np.arange(len(hours))
ax.barh(y, ind, height=0.62, color=C1, edgecolor="0.35", linewidth=0.5,
label="感性无功")
ax.barh(y, -cap, height=0.62, color=C3, edgecolor="0.35", linewidth=0.5,
label="容性无功")
ax.axvline(0, color="0.3", lw=0.6)
ax.set_yticks(y)
ax.set_yticklabels(hours)
ax.set_xlabel("无功 / kvar(左为容性,右为感性)")
ax.set_ylabel("时段 / h")
ax.set_xlim(-190, 190)
legend(ax, "lower right", ncol=1)
save(fig, "39_人口金字塔", "39_人口金字塔_正反向无功")
def py_05():
"""两区域负荷对比金字塔。"""
fig, ax = new_fig(left=0.20)
hours = ["0-4", "4-8", "8-12", "12-16", "16-20", "20-24"]
a = np.array([320, 386, 520, 486, 548, 356])
b = np.array([240, 296, 418, 392, 446, 268])
y = np.arange(len(hours))
ax.barh(y, a, height=0.62, color=C1, edgecolor="0.35", linewidth=0.5,
label="A 区")
ax.barh(y, -b, height=0.62, color=C5, edgecolor="0.35", linewidth=0.5,
label="B 区")
ax.axvline(0, color="0.3", lw=0.6)
ax.set_yticks(y)
ax.set_yticklabels(hours)
ax.set_xlabel("有功负荷 " + IT["P"] + " / kW")
ax.set_ylabel("时段 / h")
ax.set_xlim(-640, 640)
legend(ax, "lower right", ncol=1)
save(fig, "39_人口金字塔", "39_人口金字塔_双区域负荷")
说明
- 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。

浙公网安备 33010602011771号