Python:显示具有负值和正值的矩阵

时间:2014-07-07 18:27:08

标签: python image matlab

我有一个带有正值和负值的矩阵m。我想在Python中可视化这个矩阵。在MATLAB中,我可以显示此矩阵,以便最负值被映射到0,而最正值通过使用imshow(m, []);映射到255。我怎么能在python下等效地做到这一点?

2 个答案:

答案 0 :(得分:2)

使用matplotlib的imshow

看起来默认情况下会缩放
import numpy as np
import matplotlib.pyplot as plt

x = np.array([[1.0,2.0], [-3.0,-2.0]], dtype='float')

plt.imshow(x, interpolation='none')
plt.colorbar()
plt.show()

matrix

答案 1 :(得分:2)

imshow接受最小和最大色标:

import numpy as np
import matplotlib.pyplot as plt

# create some data with both negative and positive values
data = np.random.randn(10,10)

fig = plt.figure()
ax = fig.add_subplot(111)
im = ax.imshow(data, vmin=-.2, vmax=.2, interpolation='nearest', cmap=plt.cm.gray, aspect='auto')
fig.colorbar(im)

(请注意,我使用面向对象的表示法。如果使用有状态接口,那么它自然只有imshow(...)等等。主要点在于关键字参数。)

在关键字参数vminvmax中,告诉颜色贴图缩放,cmap定义颜色贴图,aspect='auto'使图像在两个维度都可缩放。 interpolation参数很好地测试自己(只是把它留下来看看会发生什么)。

在这种情况下,最低颜色(值< = -.2)是黑色,最高颜色(值> = .2)是白色:

enter image description here