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
为了增加表面的平滑度,您必须增加用于计算 x
和 y
数组的点 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()
非常简单,如果我绘制 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
为了增加表面的平滑度,您必须增加用于计算 x
和 y
数组的点 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()