如何通过两个变量的数学函数制作3D和轮廓图

时间:2019-02-28 16:43:32

标签: python python-3.x numpy matplotlib

我希望能够通过数学函数绘制3D和轮廓图(具有选定的水平)。

例如,

phi = np.linspace(0,np.pi)
theta = np.linspace(0,np.pi)

D = np.sin(phi-theta)

其中D是2D数组,其中phi的每个值都有一个由所有thetas组成的数组。然后绘制3D,轴为phithetaD。还有一个等高线图,可以从任何值中选择级别(最多可以选择10个级别,例如,phi可以更改为np.linspace(0,np.pi,10))

如何制作此类3D和轮廓图?

1 个答案:

答案 0 :(得分:0)

要制作3d图,您需要使用str.replace(/[\r\n]+/g, '\\\n') %>'; phi变量创建一个网格:

theta

您可以从此处继续计算import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np phi = np.linspace(0, np.pi) theta = np.linspace(0, np.pi) Phi, Theta = np.meshgrid(phi, theta) 并进行绘图:

D

其中给出了以下曲面图:

enter image description here

等高线的工作量不大(尽管对于简单的正弦函数并不是特别有用):

D = np.sin(Phi - Theta)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(Phi, Theta, D)

enter image description here