如何在 python 给定 z 函数的情况下使用 matplotlib 创建曲面图

How to create a surface plot with matplotlib in python given a z function

我有 z 的功能:

z = 0.4x + 0.7y + 0.8x^2 + 0.5xy + 0.2y^2

(-3 < x <3, -3 < y <3)

有没有办法在 python 中使用 matplotlib 绘制 x、y、z 的说明性 3d 曲面图?

Sympy, Python's symbolic math library, contains a function plot3d_parametric_surface。 Sympy 的绘图在内部使用 matplotlib。请注意,Python 使用 ** 作为幂,因为 ^ 保留给 exclusive or

from sympy.plotting.plot import plot3d_parametric_surface
from sympy.abc import x, y

plot3d_parametric_surface(x, y, 0.4 * x + 0.7 * y + 0.8 * x ** 2 + 0.5 * x * y + 0.2 * y ** 2, (x, -3, 3), (y, -3, 3))

PS:对于没有sympy的解决方案,可以直接调用matplotlib的plot_surface,例如通过numpy的meshgrid。请注意,sympy 默认自适应地细分范围,在曲面更弯曲的地方添加更多细节。使用 meshgrid,您将获得参数 space.

的固定划分