02 六边形分箱 hexbin

用途

上万点散点的密度替代方案,比半透明 scatter 更干净、层次更清楚。

示例(5 张)

02-1 三万点负荷散点的六边形密度

三万点负荷散点的六边形密度

02-2 光伏出力与辐照度的六边形密度

光伏出力与辐照度的六边形密度

02-3 谐波幅值与相位的密度分布

谐波幅值与相位的密度分布

02-4 电机转速—转矩大样本工作点分布

电机转速—转矩大样本工作点分布

02-5 电压偏差与三相不平衡度的密度

电压偏差与三相不平衡度的密度

代码

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

# 摘自 code/第一批_分布与矩阵261107.py

def hb_01():
    """三万点负荷散点的六边形密度。"""
    fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
    rng = np.random.default_rng(201)
    x = rng.normal(520, 130, 30000)
    y = 0.52 * x + rng.normal(0, 68, 30000)
    h = ax.hexbin(x, y, gridsize=32, cmap=CMAP_SEQ, mincnt=1, linewidths=0.1)
    ax.set_xlabel("有功功率 " + IT["P"] + " / kW")
    ax.set_ylabel("无功功率 " + IT["Q"] + " / kvar")
    cbar(fig, ax, h, "样本数")
    save(fig, "02_六边形分箱", "02_六边形分箱_负荷散点密度")

def hb_02():
    """光伏出力与辐照度的六边形密度。"""
    fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
    rng = np.random.default_rng(202)
    g = rng.uniform(0, 1050, 26000)
    p = 0.92 * g * rng.uniform(0.86, 1.0, 26000) + rng.normal(0, 14, 26000)
    h = ax.hexbin(g, p, gridsize=34, cmap=CMAP_SEQ, mincnt=1, linewidths=0.1)
    ax.set_xlabel("辐照度 " + IT["G"] + " / (W/m²)")
    ax.set_ylabel("有功出力 " + IT["P"] + " / kW")
    cbar(fig, ax, h, "样本数")
    save(fig, "02_六边形分箱", "02_六边形分箱_光伏出力与辐照度")

def hb_03():
    """谐波幅值与相位的密度分布。"""
    fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
    rng = np.random.default_rng(203)
    a = rng.gamma(3.2, 5.4, 24000)
    ph = rng.vonmises(0.6, 1.4, 24000) * 180 / np.pi
    h = ax.hexbin(a, ph, gridsize=30, cmap=CMAP_SEQ, mincnt=1, linewidths=0.1)
    ax.set_xlabel("5 次谐波幅值 " + IT["I"] + SUB["h"] + " / A")
    ax.set_ylabel("谐波相位 / (°)")
    cbar(fig, ax, h, "样本数")
    save(fig, "02_六边形分箱", "02_六边形分箱_谐波幅值与相位")

def hb_04():
    """电机转速—转矩大样本工作点分布。"""
    fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
    rng = np.random.default_rng(204)
    n = rng.normal(1750, 320, 28000)
    tq = np.clip(78 - 0.021 * (n - 1750) + rng.normal(0, 12, 28000), 0, None)
    h = ax.hexbin(n, tq, gridsize=33, cmap=CMAP_SEQ, mincnt=1, linewidths=0.1)
    ax.set_xlabel("转速 " + IT["n"] + " / (r/min)")
    ax.set_ylabel("转矩 " + IT["T"] + " / (N·m)")
    cbar(fig, ax, h, "样本数")
    save(fig, "02_六边形分箱", "02_六边形分箱_电机工作点密度")

def hb_05():
    """电压偏差与三相不平衡度的密度。"""
    fig, ax = new_fig(left=0.19, bottom=0.21, right=0.86)
    rng = np.random.default_rng(205)
    d = rng.normal(0.8, 2.6, 26000)
    ub = np.abs(rng.gamma(4.2, 0.36, 26000)) + 0.05 * np.abs(d)
    h = ax.hexbin(d, ub, gridsize=32, cmap=CMAP_SEQ, mincnt=1, linewidths=0.1)
    ax.axvline(7, color=C2, lw=0.7, ls="--")
    ax.axhline(2.0, color=C2, lw=0.7, ls=":")
    ax.set_xlabel("电压偏差 / %")
    ax.set_ylabel("电压不平衡度 / %")
    cbar(fig, ax, h, "样本数")
    save(fig, "02_六边形分箱", "02_六边形分箱_电压偏差与不平衡度")

说明

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