25 三维填充等高线 contourf3D

25 三维填充等高线 contourf3D

用途

带填充的三维等高线,层次更分明。

示例(5 张)

25-1 电场强度的三维填充等高线

电场强度的三维填充等高线

25-2 温度场的三维填充等高线

温度场的三维填充等高线

25-3 效率 MAP 的三维填充等高线

效率 MAP 的三维填充等高线

25-4 地电位分布的三维填充等高线

地电位分布的三维填充等高线

25-5 铁心损耗的三维填充等高线

铁心损耗的三维填充等高线

代码

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

# 摘自 code/第四批_三维扩展261107.py

def cf3_01():
    """电场强度的三维填充等高线。"""
    fig, ax = new_fig3d(left=0.13)
    x = np.linspace(-1, 1, 60)
    y = np.linspace(-1, 1, 60)
    X, Y = np.meshgrid(x, y)
    Z = 40 * np.exp(-(X ** 2 + Y ** 2) / 0.28) + 6
    ax.contourf3D(X, Y, Z, levels=16, cmap=CMAP_SEQ)
    ax.set_xlabel("横向位置 " + IT["x"] + " / m", labelpad=2)
    ax.set_ylabel("纵向位置 " + IT["y"] + " / m", labelpad=2)
    ax.set_zlabel("场强 " + IT["E"] + " / (kV/m)", labelpad=2)
    ax.view_init(elev=28, azim=-130)
    save(fig, "25_三维填充等高线", "25_三维填充等高线_电场三维填充")

def cf3_02():
    """温度场的三维填充等高线。"""
    fig, ax = new_fig3d(left=0.13)
    x = np.linspace(0, 1.4, 60)
    y = np.linspace(0, 1.1, 55)
    X, Y = np.meshgrid(x, y)
    Z = 30 + 26 * np.exp(-((X - 0.55) / 0.30) ** 2 - ((Y - 0.5) / 0.34) ** 2) + 6 * Y
    ax.contourf3D(X, Y, Z, levels=16, cmap=CMAP_SEQ)
    ax.set_xlabel("柜宽 " + IT["x"] + " / m", labelpad=2)
    ax.set_ylabel("柜高 " + IT["y"] + " / m", labelpad=2)
    ax.set_zlabel("温度 " + IT["T"] + " / °C", labelpad=2)
    ax.view_init(elev=27, azim=-124)
    save(fig, "25_三维填充等高线", "25_三维填充等高线_温度三维填充")

def cf3_03():
    """效率 MAP 的三维填充等高线。"""
    fig, ax = new_fig3d(left=0.13)
    n = np.linspace(600, 3000, 60)
    tq = np.linspace(0, 120, 60)
    N, T = np.meshgrid(n, tq)
    Z = 94.5 - 8.0 * ((T - 62) / 90) ** 2 - 3.4 * ((N - 2100) / 1500) ** 2
    ax.contourf3D(N, T, Z, levels=16, cmap=CMAP_SEQ)
    ax.set_xlabel("转速 " + IT["n"] + " / (r/min)", labelpad=2)
    ax.set_ylabel("转矩 " + IT["T"] + " / (N·m)", labelpad=2)
    ax.set_zlabel("效率 " + IT["eta"] + " / %", labelpad=2)
    ax.view_init(elev=26, azim=-128)
    save(fig, "25_三维填充等高线", "25_三维填充等高线_效率三维填充")

def cf3_04():
    """地电位分布的三维填充等高线。"""
    fig, ax = new_fig3d(left=0.13)
    x = np.linspace(-30, 30, 60)
    y = np.linspace(-30, 30, 60)
    X, Y = np.meshgrid(x, y)
    Z = np.zeros_like(X)
    for gx, gy, k in [(-8, -6, 1.0), (8, -6, 0.85), (0, 8, 0.92)]:
        Z += k / np.sqrt((X - gx) ** 2 + (Y - gy) ** 2 + 1.2) * 62
    ax.contourf3D(X, Y, Z, levels=16, cmap=CMAP_SEQ)
    ax.set_xlabel("东向距离 " + IT["x"] + " / m", labelpad=2)
    ax.set_ylabel("北向距离 " + IT["y"] + " / m", labelpad=2)
    ax.set_zlabel("电位 " + IT["U"] + " / V", labelpad=2)
    ax.view_init(elev=30, azim=-125)
    save(fig, "25_三维填充等高线", "25_三维填充等高线_地电位三维填充")

def cf3_05():
    """铁心损耗的三维填充等高线。"""
    fig, ax = new_fig3d(left=0.13)
    x = np.linspace(0, 200, 60)
    y = np.linspace(0, 160, 55)
    X, Y = np.meshgrid(x, y)
    Z = 2.1 + 1.4 * np.sin(X / 42 + 0.6) * np.cos(Y / 38) \
        + 0.8 * np.exp(-((X - 100) / 70) ** 2 - ((Y - 80) / 56) ** 2)
    ax.contourf3D(X, Y, Z, levels=16, cmap=CMAP_SEQ)
    ax.set_xlabel("铁心长度 " + IT["x"] + " / mm", labelpad=2)
    ax.set_ylabel("铁心高度 " + IT["y"] + " / mm", labelpad=2)
    ax.set_zlabel("单位损耗 / (W/kg)", labelpad=2)
    ax.view_init(elev=28, azim=-126)
    save(fig, "25_三维填充等高线", "25_三维填充等高线_铁损三维填充")

说明

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