python 如何在 matplotlib 上绘制一对多函数

How to plot a one to many function on matplotlib in python

非常简单,如果我绘制 x^2+y^2=z 它在 python 上形成这个形状,它将形成这个形状:

当我想这样绘制时:

以下是我的代码,我是新手,所以我从网上复制了它,并更改了带有绘图功能的行。

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-4*np.pi,4*np.pi,50)
y = np.linspace(-4*np.pi,4*np.pi,50)
z = x**2+y**2
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot(x,y,z)
plt.show()

另外,请问如何让它更高清更平滑,这是z=sin(x)的图

您需要使用 numpy.meshgrid 定义二维数学域,然后您可以计算该域上的表面:

X, Y = np.meshgrid(x, y)

Z = X**2 + Y**2

为了增加表面的平滑度,您必须增加用于计算 xy 数组的点 N 的数量:

完整代码

import matplotlib.pyplot as plt
import numpy as np

N = 50

x = np.linspace(-4*np.pi, 4*np.pi, N)
y = np.linspace(-4*np.pi, 4*np.pi, N)

X, Y = np.meshgrid(x, y)

Z = X**2 + Y**2

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

ax.plot_surface(X, Y, Z)

plt.show()