我是一个Python初学者。
我有一个X值列表
x_list = [-1,2,10,3]
我有一个Y值列表
y_list = [3,-3,4,7]
然后我给每对夫妇取一个Z值。示意图上,它的工作原理如下:
X Y Z
-1 3 5
2 -3 1
10 4 2.5
3 7 4.5
Z值存储在z_list = [5,1,2.5,4.5]
中。
我需要得到一个二维图,X轴上有X值,Y轴上有Y值,对于每一对,Z值由强度图表示。
这是我尝试过的,但没有成功:
X, Y = np.meshgrid(x_list, y_list)
fig, ax = plt.subplots()
extent = [x_list.min(), x_list.max(), y_list.min(), y_list.max()]
im=plt.imshow(z_list, extent=extent, aspect = 'auto')
plt.colorbar(im)
plt.show()
如何正确完成这项工作?
问题是
imshow(z_list, ...)
将期望z_list
是一个(n,m)
类型的数组,基本上是一个值网格。要使用imshow函数,需要为每个网格点设置Z值,可以通过收集更多数据或插值来实现。下面是一个将数据与线性插值结合使用的示例:
您可以看到它在您的采样点处显示正确的值(由
x_list
和y_list
指定,由半圆表示),但由于插值的性质和采样点的数量较少,它在其他位置的变化要大得多。有一种方法:
我跟踪了这个链接:How to plot a density map in python?
相关问题 更多 >
编程相关推荐