You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Matplotlib在XY平面绘制z=0的等高线图?

在XY平面绘制指定等高线的解决方案

要在XY平面(z=0处)绘制z=0对应的等高线,你需要调整matplotlib中contour方法的参数,指定投影平面和目标等高线层级,修改后的代码如下:

方案1:同时显示3D曲面与XY平面上的等高线

import numpy as np
import matplotlib.pyplot as plt

def f(x,y):
    return x**2 + y**2

x = np.linspace(-10,10,100)
y = np.linspace(-10,10,100)
X,Y = np.meshgrid(x,y)
Z = f(X,Y)

fig = plt.figure()
ax = plt.axes(projection='3d')
# 保留3D曲面绘制
ax.plot_surface(X, Y, Z, cmap="autumn_r", rstride=1, cstride=1)
# 在z=0的XY平面绘制z=0的等高线
ax.contour(X, Y, Z, levels=[0], cmap="autumn_r", linestyles="solid", zdir='z', offset=0)
plt.show()

方案2:仅显示XY平面上的等高线

如果不需要展示3D曲面,直接去掉plot_surface代码即可:

import numpy as np
import matplotlib.pyplot as plt

def f(x,y):
    return x**2 + y**2

x = np.linspace(-10,10,100)
y = np.linspace(-10,10,100)
X,Y = np.meshgrid(x,y)
Z = f(X,Y)

fig = plt.figure()
ax = plt.axes(projection='3d')
# 仅在z=0的XY平面绘制z=0的等高线
ax.contour(X, Y, Z, levels=[0], cmap="autumn_r", linestyles="solid", zdir='z', offset=0)
# 调整坐标轴范围让视图更清晰
ax.set_zlim(-1, 1)
plt.show()

关键参数说明

  • levels=[0]:明确指定只绘制函数值等于0的等高线,替代默认的10条自动生成的等高线
  • zdir='z':指定将等高线投影到z轴方向的平面上
  • offset=0:设置投影平面的z坐标为0,也就是XY平面的位置

内容的提问来源于stack exchange,提问作者Ian Aragão

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 10:25:02