我正在尝试使用Python创建一个山脉的表面图,我有一些xyz数据。最终结果应该类似于这个链接。文件的格式如下:
第一列代表x坐标,中间一列代表y坐标,而z代表属于xy坐标的高度。
我使用pandas读取数据,然后将列转换为单独的x、y、z NumPy一维数组。到目前为止,我已经成功创建了一个简单的三维散点图,使用for循环迭代每个一维数组的每个索引,但这需要很长时间,看起来效率相当低下。
我尝试使用scipy.interpolate.griddata和plt.plot_surface,但对于z数据,我总是得到一个错误,即数据应该是一个二维数组,但我无法弄清楚为什么或者应该如何将其转换为二维数据。我假设,鉴于我有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一维数组。到目前为止,我已经成功创建了一个简单的三维散点图,使用for循环迭代每个一维数组的每个索引,但这需要很长时间,看起来效率相当低下。
我尝试使用scipy.interpolate.griddata和plt.plot_surface,但对于z数据,我总是得到一个错误,即数据应该是一个二维数组,但我无法弄清楚为什么或者应该如何将其转换为二维数据。我假设,鉴于我有xyz数据,应该有一种简单的方法来创建一个表面。是否有简单的方法?