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