python - 自定义颜色图Matplotlib,使一个值成为规定的颜色

标签 python matplotlib

我在 python 中有一个数组,使用 matplotlib,浮点范围在 0 到 1 之间。

我正在用 imshow 显示这个数组,我正在尝试创建一个自定义 cmap,它与 Greens 相同,但是当单元格变为 0 时,我希望能够将该值映射到红色,并保留其余的光谱不变。

如果任何更熟悉 matplotlib 的人能够帮助我,我将不胜感激!

例如,我将如何编辑此脚本以使矩阵中的零值显示为红色?

import numpy as np

from matplotlib import pyplot as plt

import matplotlib

x = np.array([[0,1,2],[3,4,5],[6,7,8]])

fig = plt.figure()

cmap_custom = matplotlib.cm.Greens

plt.imshow( x, interpolation='nearest' ,cmap = cmap_custom)

plt.colorbar()

plt.show()

最佳答案

matplotlib 中的颜色图允许您为定义范围之外的值设置特殊颜色。在您的情况下,使用 cmap_custom.set_under('r') 指定低于定义范围的值的颜色。 然后,您还需要指定范围的下限:vmin=0.01(只是某个值 > 0)。 最后使用 plt.colorbar(extend='min') 创建颜色条。

import numpy as np
from matplotlib import pyplot as plt
import matplotlib

x = np.array([[0,1,2],[3,4,5],[6,7,8]])

fig = plt.figure()
cmap_custom = matplotlib.cm.Greens
cmap_custom.set_under('r')
plt.imshow( x, interpolation='nearest' ,cmap = cmap_custom, vmin=0.01)
plt.colorbar(extend='min')
plt.show()

关于python - 自定义颜色图Matplotlib,使一个值成为规定的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27174118/

相关文章:

python - 如果使用颜色图或 RGB 数组,matplotlib imshow 的绘图会有所不同

python - for 之后无法绘制数据

python - 以特定的 y 间隔绘制函数

python - Pandas - 将行中的值设置为自身乘以另一个值

python - 使用 Databricks PySpark 从 Azure Blob 存储读取多个 CSV 文件

python - 如何从键值对列表中搜索数据是否在列表中

python - 绘制大量数据点

python - 使用 matplotlib 子图绘制 pandas groupby 输出

python - 为什么我调用这些方法时总是出现 "Not found"错误?

python - 在 Python 中缓存 Mashape API 调用