如何使用 Matplotlib 从分散的数据创建平滑的 3D 曲面?

Barbara Streisand
发布: 2024-10-26 07:11:02
原创
142 人浏览过

How to Create Smooth 3D Surfaces from Scattered Data Using Matplotlib?

使用 Matplotlib 创建曲面图

考虑表示 3D 空间中的点的 3 元组列表,任务是生成覆盖这些点的曲面。

使用 mplot3d 包中的plot_surface 需要 X、Y 和 Z 的二维数组形式的输入数据。要转换给定的数据结构,需要考虑一些因素。

在以下情况下曲面与线图不同,您需要使用二维数组定义覆盖域的网格。当仅处理 3D 点列表时,三角测量变得至关重要。这是因为给定的点云有多种可能的三角剖分。

对于光滑的表面,可以采取以下方法:

<code class="python">import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random

def fun(x, y):
    return x**2 + y

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)
zs = np.array(fun(np.ravel(X), np.ravel(Y)))
Z = zs.reshape(X.shape)

ax.plot_surface(X, Y, Z)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()</code>
登录后复制

此代码使用 meshgrid 定义网格,生成相应的Z值,并使用plot_surface创建曲面图。生成的表面提供了底层数据的平滑表示。

以上是如何使用 Matplotlib 从分散的数据创建平滑的 3D 曲面?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!