使用 Matplotlib 在 3D 空间中绘制带有点的曲面
在本文中,我们将探讨如何创建包含以下集合的曲面图:使用 Python 的 Matplotlib 库(特别是其 mplot3d 模块)绘制三维空间中的点。
mplot3d 中的plot_surface 函数需要 X、Y 和 Z 参数的二维数组,而不是像下面这样的 3 元组列表你有。因此,第一步是将数据准备为必要的格式。
对于曲面,与线图不同,您将需要一个表示域的 2D 数组网格。使用离散点(例如您拥有的三元组)会带来挑战,因为有多个潜在的三角剖分可以创建曲面。
考虑生成平滑曲面的 Python 代码,其中 f(x, y) = x^2 y:
<code class="python">import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = y = np.arange(-3.0, 3.0, 0.05) X, Y = np.meshgrid(x, y) # Calculate the Z values for each point in X and Y zs = np.array(fun(np.ravel(X), np.ravel(Y))) Z = zs.reshape(X.shape) # Plot the surface ax.plot_surface(X, Y, Z) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()</code>
在此示例中,X 和 Y 是表示域的二维数组,Z 是每个点对应的值数组。 plot_surface 函数使用这些数组来创建平滑的表面。此方法适用于由数学函数定义的表面。
但是,如果您的数据仅由离散 3D 点组成,则可能需要考虑其他选项。
以上是如何使用 Matplotlib 从点集合创建 3D 曲面图?的详细内容。更多信息请关注PHP中文网其他相关文章!