Python 将X、Y、Z值转换为Matrixplot
我有以下清单:Python 将X、Y、Z值转换为Matrixplot,python,python-3.x,matplotlib,Python,Python 3.x,Matplotlib,我有以下清单: x_list = [7,10,3,9,9] y_list = [2,5,1,3,2] z_list = [4,1,5,2,3] 对于每个x值和y值,都有一个z值。例如:x=7和y=2的z值为4 我想将其转换为矩阵,例如: …为了能够创建具有正确x轴和y轴以及颜色条的矩阵图(此处缺少颜色条,最好将零值设置为黑色): 在Excel中执行此操作相当简单,但在python中执行此操作时遇到困难,因为我对matplotlib非常陌生 编辑 我可能会使用plt.imshow()来绘制
x_list = [7,10,3,9,9]
y_list = [2,5,1,3,2]
z_list = [4,1,5,2,3]
对于每个x
值和y
值,都有一个z
值。例如:x=7
和y=2
的z
值为4
我想将其转换为矩阵,例如:
…为了能够创建具有正确x轴和y轴以及颜色条的矩阵图(此处缺少颜色条,最好将零值设置为黑色):
在Excel中执行此操作相当简单,但在python中执行此操作时遇到困难,因为我对matplotlib非常陌生
编辑
我可能会使用plt.imshow()来绘制图NumPy's,这里的函数是您的朋友,用于根据您的坐标设置正确的网格。然后,您只需要在生成的X
和Y
中找到与您的坐标对应的适当索引。最后,在一些与X
和Y
尺寸相同的全零Z
矩阵中,您可以将刚找到的索引处的元素设置为原始Z
数据
下面是一些代码:
将numpy导入为np
x=np.数组([7,10,3,9,9])
y=np.数组([2,5,1,3,2])
z=np.数组([4,1,5,2,3])
#从X和Y计算X,Y网格,用零初始化Z数据
十、 Y=np.meshgrid(np.unique(X),np.unique(Y))
Z=np.零(X.形)
#在网格中找到合适的索引,并相应地设置Z值
对于np.int32(np.arange(X.size))中的idx,idx=np.square([np.argwhere(np.logical_和(X==X[idx],Y==Y[idx]))
Z[idx[:,0],idx[:,1]=Z
打印(Z)
并且,输出是:
[[5.0.0.0]
[0. 4. 3. 0.]
[0. 0. 2. 0.]
[0. 0. 0. 1.]]
关于绘图:我想不出一个Matplotlib函数来创建与所示类似的绘图。所以,也许给你一个额外的提示,你在想什么功能
希望有帮助 非常感谢你的回答!可能是plt.imshow(Z),但我不知道如何正确设置颜色和颜色栏