自定义颜色映射Matplotlib,使一个值成为指定的颜色

我在Python中使用matplotlib在一个数组中,其浮点数介于0到1之间。

我正在用imshow显示此数组,我试图创建一个与Greens相同的自定义cmap,但是当一个单元格变为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()

以上是 自定义颜色映射Matplotlib,使一个值成为指定的颜色 的全部内容, 来源链接: utcz.com/qa/397419.html

回到顶部