Python:显示一个包含负值和正值的矩阵

2024-05-03 07:59:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个矩阵m有正值和负值。我想用Python可视化这个矩阵。在MATLAB中,我可以显示这个矩阵,以便通过使用imshow(m, []);将最大负值映射到0,而将最大正值映射到255。在python下,我怎样才能做到这一点呢?


Tags: 可视化矩阵matlabimshow负值
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)

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

在关键字参数vminvmax中,告诉颜色映射缩放,cmap定义颜色映射,并且aspect='auto'使图像在两个维度上都可缩放。参数interpolation很好地测试了您自己(只需忽略它,看看会发生什么)。

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

enter image description here

看起来它默认情况下是使用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

相关问题 更多 >