matplotlib imshow - 默认颜色标准化

oLa*_*Las 32 python matplotlib normalization imshow

使用时我的色彩图始终存在问题imshow,有些颜色似乎变黑了.我终于意识到,imshow默认情况下,似乎规范化了我给它的浮点值矩阵.

我本来期望一个数组,例如[[0,0.25],[0.5,0.75]]从地图中显示适当的颜色,对应于那些绝对值,但0.75将被解释为1.在极端情况下,N×N数组为0.2(例如),只产生一个大的黑色方块,而不是人们所期望的0.2对应于色彩图(可能是20%的灰色).

有没有办法防止这种行为?当自定义颜色贴图具有许多不连续性时,特别令人讨厌,尺度的微小变化可能导致所有颜色完全改变.

Joe*_*ton 53

只需指定vmin=0, vmax=1.

默认情况下,imshow将数据规范化为最小值和最大值.您可以使用vminvmax参数或参数控制它norm(如果您想要非线性缩放).

作为一个简单的例子:

import matplotlib.pyplot as plt

data = [[0, 0.25], [0.5, 0.75]]

fig, ax = plt.subplots()
im = ax.imshow(data, cmap=plt.get_cmap('hot'), interpolation='nearest',
               vmin=0, vmax=1)
fig.colorbar(im)
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 我的生活是完整的!这让我唠叨了太久.希望这有助于其他人. (5认同)