python - matplotlib imshow - 默认颜色归一化

标签 python matplotlib normalization imshow

在使用 imshow 时,我的颜色图一直存在问题,有些颜色似乎只是变黑了。我终于意识到 imshow 似乎默认情况下会标准化我给它的浮点值矩阵。

我希望像 [[0,0.25],[0.5,0.75]] 这样的数组来显示 map 中的适当颜色,对应于这些绝对值,但 0.75 将是解释为 1。在极端情况下,一个 0.2 的 N x N 数组(例如)只会产生一个大的黑色方 block ,而不是在颜色映射中期望 0.2 对应的任何东西(可能是 20% 的灰色) )。

有没有办法防止这种行为?当自定义颜色图有很多不连续性时尤其烦人,比例的微小变化可能会导致所有颜色完全改变。

最佳答案

只需指定 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()

enter image description here

关于python - matplotlib imshow - 默认颜色归一化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121239/

相关文章:

python - 在列表中插入项目后增加每个元素

python - 在python中将所有列表值连接到一个数组

python - 如何知道 django 应用程序的覆盖率?

python - Seaborn地 block 没有出现

python - 无法使用 Active Directory 身份验证从 python 连接到 SQL Server

python - Matplotlib 分散 3d 颜色

python - 如何在 Python 中运行脚本时操作图形?

mysql - JSON 元素到行或 JSON 到 MYSQL 中的表行(在 MySQL 中导出 JSON)

python - tf-idf : should I do normalization of documents length

sql - 如何在通用模式上对数据变量方差进行建模? SQL