01 二维直方图 hist2d
用途
两个电气量的联合分布密度,如图示负荷—气温、电压—电流的耦合关系。
示例(5 张)
01-1 负荷与气温的联合分布密度

01-2 母线电压与负荷电流的联合分布

01-3 风速与风向的联合分布(玫瑰化散点密度)

01-4 储能荷电状态与电芯温度的联合分布

01-5 有功与无功负荷的联合分布(叠加等功率因数线)

代码
以下 5 个函数取自 code/第一批_分布与矩阵261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。
# 摘自 code/第一批_分布与矩阵261107.py
def h2d_01():
"""负荷与气温的联合分布密度。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
rng = np.random.default_rng(101)
t = rng.normal(28, 8, 6000)
p = 380 + 9.5 * (t - 20) + rng.normal(0, 55, 6000)
h = ax.hist2d(t, p, bins=[42, 42], cmap=CMAP_SEQ, cmin=2)
ax.set_xlabel("气温 " + IT["T"] + " / °C")
ax.set_ylabel("有功负荷 " + IT["P"] + " / kW")
cbar(fig, ax, h[3], "样本数")
save(fig, "01_二维直方图", "01_二维直方图_负荷气温联合分布")
def h2d_02():
"""母线电压与负荷电流的联合分布。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
rng = np.random.default_rng(102)
i = rng.gamma(9, 32, 6000)
u = 10.25 - 0.00085 * i + rng.normal(0, 0.055, 6000)
h = ax.hist2d(i, u, bins=[40, 40], cmap=CMAP_SEQ, cmin=2)
ax.set_xlabel("负荷电流 " + IT["I"] + " / A")
ax.set_ylabel("母线电压 " + IT["U"] + " / kV")
cbar(fig, ax, h[3], "样本数")
save(fig, "01_二维直方图", "01_二维直方图_电压电流联合分布")
def h2d_03():
"""风速与风向的联合分布(玫瑰化散点密度)。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
rng = np.random.default_rng(103)
d = rng.normal(135, 42, 7000) % 360
v = 8.6 * rng.weibull(2.2, 7000)
h = ax.hist2d(d, v, bins=[36, 30], cmap=CMAP_SEQ, cmin=2)
ax.set_xlabel("风向 / (°)")
ax.set_ylabel("风速 " + IT["v"] + " / (m/s)")
ax.set_xlim(0, 360)
cbar(fig, ax, h[3], "样本数")
save(fig, "01_二维直方图", "01_二维直方图_风速风向联合分布")
def h2d_04():
"""储能荷电状态与电芯温度的联合分布。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
rng = np.random.default_rng(104)
soc = rng.beta(2.6, 2.6, 6000) * 100
temp = 26 + 0.16 * soc + rng.normal(0, 2.4, 6000)
h = ax.hist2d(soc, temp, bins=[40, 40], cmap=CMAP_SEQ, cmin=2)
ax.set_xlabel("荷电状态 SOC / %")
ax.set_ylabel("电芯温度 " + IT["T"] + " / °C")
cbar(fig, ax, h[3], "样本数")
save(fig, "01_二维直方图", "01_二维直方图_SOC与电芯温度")
def h2d_05():
"""有功与无功负荷的联合分布(叠加等功率因数线)。"""
fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
rng = np.random.default_rng(105)
p = rng.gamma(6, 90, 6000)
q = p * rng.uniform(0.28, 0.62, 6000) + rng.normal(0, 20, 6000)
h = ax.hist2d(p, q, bins=[42, 42], cmap=CMAP_SEQ, cmin=2)
xx = np.linspace(60, 900, 60)
for npf, ls in [(0.90, "-"), (0.95, "--")]:
ax.plot(xx, xx * np.tan(np.arccos(npf)), color=C2, ls=ls, lw=0.7)
ax.set_xlabel("有功功率 " + IT["P"] + " / kW")
ax.set_ylabel("无功功率 " + IT["Q"] + " / kvar")
ax.set_xlim(0, 950)
cbar(fig, ax, h[3], "样本数")
save(fig, "01_二维直方图", "01_二维直方图_有功无功联合分布")
说明
- 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。
浙公网安备 33010602011771号