Matplotlib 中的曲面图
创建曲面图时,plot_surface 函数需要 2D 数组作为参数来表示 3D 空间中的点。但是,如果您只有 3D 点列表,则需要考虑具体因素。
三角测量点云
对于 3D 点列表,plot_surface 不能由于将点三角化为曲面的过程不明确,因此直接使用。 Matplotlib 没有提供自动将点三角化为曲面的方法。
替代方法:基于网格的曲面
如果您没有表示曲面的函数,您可以使用 fun(x, y) 等函数生成基于网格的表面。在此方法中,您定义点网格并使用给定函数计算相应的 z 值。
<code class="python">import numpy as np import matplotlib.pyplot as plt # Define the function def fun(x, y): return x**2 + y # Create a meshgrid x = y = np.arange(-3.0, 3.0, 0.05) X, Y = np.meshgrid(x, y) # Compute the z-values zs = np.array(fun(np.ravel(X), np.ravel(Y))) Z = zs.reshape(X.shape) # Create the surface plot fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot_surface(X, Y, Z)</code>
此方法允许您创建穿过给定 3D 点并覆盖整个网格范围。
以上是如何在 Matplotlib 中使用 3D 点列表创建曲面图?的详细内容。更多信息请关注PHP中文网其他相关文章!