如何在Python中绘制二维数组?

jin*_*oon 2 python plot matplotlib

我有数据集

data = [[1,2,3], [4,5,6], [7,8,9]].
Run Code Online (Sandbox Code Playgroud)

并打电话

plot(data)
plot.show()
Run Code Online (Sandbox Code Playgroud)

那么 y 轴被视为内部数组的值。

我想要的是

f(0,0) = 1, f(0,1) = 2, f(1,2) = 3, 
f(1,0) = 4, f(1,1) = 5, f(1,2) = 6,
f(2,0) = 7, f(2,1) = 8, f(2,2) = 9
Run Code Online (Sandbox Code Playgroud)

问题是,如何将 y 轴更改为数组的索引而不是数组的值?

tom*_*m10 6

一些东西:

1) Python 没有 2D, f[i,j], 索引表示法,但要获得它,您可以使用 numpy。从示例中选择任意索引对:

import numpy as np
f = np.array(data)
print f[1,2]
# 6
print data[1][2] 
# 6
Run Code Online (Sandbox Code Playgroud)

2)然后对于情节你可以这样做:

plt.imshow(f, interpolation="nearest", origin="upper")
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

因此,这里有代表性的颜色,其中数组中有数字f

这里我指定了origin="upper"。通常人们希望(0,0)数据数组底部的点(而不是图像),但你(0,0)在左上角写出你的数组,这就是事实"upper"。顺便说一句,这也是默认设置,但显式使用可能会表明存在一个选项。