我有一个带有正值和负值的矩阵m
。我想在Python中可视化这个矩阵。在MATLAB中,我可以显示此矩阵,以便最负值被映射到0,而最正值通过使用imshow(m, []);
映射到255。我怎么能在python下等效地做到这一点?
答案 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()
答案 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(...)
等等。主要点在于关键字参数。)
在关键字参数vmin
和vmax
中,告诉颜色贴图缩放,cmap
定义颜色贴图,aspect='auto'
使图像在两个维度都可缩放。 interpolation
参数很好地测试自己(只是把它留下来看看会发生什么)。
在这种情况下,最低颜色(值< = -.2)是黑色,最高颜色(值> = .2)是白色: