matplotlib 如何绘制x、y、z数据的轮廓?[副本]

bqjvbblv  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(138)

此问题已在此处有答案

Why does pyplot.contour() require Z to be a 2D array?(5个答案)
Matplotlib contour from xyz data: griddata invalid index(2个答案)
3年前关闭。
我需要绘制x,y,z数据的轮廓。下面是一个最小的工作示例:
x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] z = [20, 40, 60, 80, 100]
因此,z = 20位于坐标(1,2),z = 40位于坐标(2,4),依此类推。在现实中,我有经度和纬度坐标与土壤电导率值在空间中的每一点。
我想使用plt.contour()或类似的东西来绘制轮廓。但是,z必须是2d数组。我对python相当精通。但是,我不完全掌握如何创建网格。
我看到的每个轮廓例子,z都是由x和y的函数计算出来的。
这是我在社会上提出的第一个问题,所以,如果我的问题需要更深入,请告诉我。
我尝试的事情:enter image description here在此输入代码
这会产生一个错误,即z必须是一个二维数组。当我尝试使用:z = np.reshape(z, (-1, 2),那么x的形状不一样。其他人也使用过网格技术吗?
如何使z成为轮廓绘制的二维数组?我是否应该重塑所有数据?

x0fgdtte

x0fgdtte1#

你所张贴的不是我们的阴谋;就是一条直线上的几个点。你的描述 * 确实 * 暗示z是一个2D数组:对于X x Y中的每一对,您都有一个Z值。
简单地按照你已经找到的例子,或者看看matplotlib documentation。如果它们 * 计算 * Z值,您只需硬编码或读入2D z数组即可。将其输入到绘图函数;这个函数不在乎你从哪里得到的值,只在乎你提供的值。

相关问题