绘制3列矩阵与pyplot

时间:2014-05-29 22:02:14

标签: python matplotlib plot

我有一个有三列的(numpy)矩阵,前两个是位置,第三个是值。我想绘制这个矩阵。我尝试使用plt.imshow(...),但轴是矩阵的索引,而不是位置。

我该怎么做?

编辑:我的矩阵是这样的:

array([[ -0.00000000e+00,   0.00000000e+00,   9.72157349e+01],
       [ -2.50000000e-02,   0.00000000e+00,   9.72157349e+01],
       [ -5.00000000e-02,   0.00000000e+00,   9.72157349e+01],
       ..., 
       [ -2.42500000e+00,   8.28630000e-05,   9.72157349e+01],
       [ -2.45000000e+00,   8.28630000e-05,   9.72157349e+01],
       [ -2.47500000e+00,   8.28630000e-05,   9.72157349e+01]])

第一列位于x位置,第二列是y位置,第三列是该位置的值。

2 个答案:

答案 0 :(得分:1)

Imshow要求您将第三列重新计算为二维矩阵并首先提取x和y轴。然后你可以使用imshow。 对于imshow,您还需要指定边界(范围),如下所示:

plt.imshow(matrix, cmap=plt.cm.jet, aspect='auto', origin='lower', alpha=1,interpolation='none', extent=(xAxis[0],xAxis[-1], yAxis[0], yAxis[-1]))

plt.colorbar()
plt.show()

然后你应该看到正确的“位置”

答案 1 :(得分:0)

最好使用散点图并使用第三列作为颜色值:

 A = your_matrix_as_numpy_array
 X,Y,Z = A.T # with Z the values at points x,y
 import matplotlib.pyplot as plt
 plt.scatter(X,Y,c=Z) 
 plt.colorbar()
 plt.show

请注意,您仍然可以使点更大/更小并更改形状等等