python - 在Python中绘制3D曲面

标签 python matplotlib plot surface

尽管有多个关于如何使用 XYZ 格式绘制 3D 曲面的来源。我有一个来自扫描激光器的 CSV 文件,该文件不提供 X 和 Y 坐标信息,仅提供矩形网格的 Z 坐标。

文件大小为 800 x 1600,仅包含 z 坐标。 Excel 可以很容易地用曲面图绘制它,但受到大小的限制。

如何解决这个问题?

Screenshot of data format

最佳答案

您只需创建 XY 坐标数组。我们可以用 numpy.meshgrid 来做到这一点。在下面的示例中,我将像元大小设置为 1,但您可以通过更改 cellsize 变量轻松缩放该值。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# Create x, y coords
nx, ny = 800, 1600
cellsize = 1.
x = np.arange(0., float(nx), 1.) * cellsize
y = np.arange(0., float(ny), 1.) * cellsize
X, Y = np.meshgrid(x, y)

# dummy data
Z = (X**2 + Y**2) / 1e6

# Create matplotlib Figure and Axes
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

print X.shape, Y.shape, Z.shape

# Plot the surface
ax.plot_surface(X, Y, Z)

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

plt.show()

enter image description here

关于python - 在Python中绘制3D曲面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39414278/

相关文章:

Python MySQLdb LOAD LOCAL INFILE问题

python - VTK 检查多数据点对象的交集

python - freeopcua c++客户端和python opcua的组合在getChild()上引发错误

javascript - 使用 Django,将 Python 字典发送到 HTML 页面并将其转换为 Javascript 脚本中的 Javascript 数组

python - 在 matplotlib 中清除轴时保留自动缩放

python - 无法在 Visual Studio Code 中调试 Flask 应用程序

python - Fig.add_axes 使用的坐标系

python - Matplotlib plot_date 在 UTC 中保持时间,即使使用自定义时区

python - 使用 matplotlib 和 python 从 pick 事件获取子图

c++ - 如何使用Qt/QwtPlot设置固定轴间隔?