我正在尝试在 python 中创建一座山的表面图,其中我有一些 xyz 数据。最终结果应该是这样的。该文件的格式如下:
616000.0 90500.0 3096.712
616000.0 90525.0 3123.415
616000.0 90550.0 3158.902
616000.0 90575.0 3182.109
616000.0 90600.0 3192.991
616025.0 90500.0 3082.684
616025.0 90525.0 3116.597
616025.0 90550.0 3149.812
616025.0 90575.0 3177.607
616025.0 90600.0 3191.986
等等。第一列代表x
坐标,中间一列代表坐标y
,z
海拔高度属于xy坐标。
我使用读取数据pandas
,然后将列转换为单独的x
, y
, z
NumPy
1D 数组。到目前为止,我设法创建了一个简单的 3D 散点图,其中for
循环遍历每个 1D 数组的每个索引,但这需要很长时间并且看起来效率很低。
我尝试使用scipy.interpolate.griddata
and plt.plot_surface
,但是对于z
数据,我总是得到数据应该在 2D 数组中的错误,但我无法弄清楚它为什么或如何应该是 2D 数据。我假设鉴于我有 xyz 数据,应该有一种方法可以简单地从它创建一个表面。有简单的方法吗?