自定义颜色映射Matplotlib,使一个值成为指定的颜色
我在Python中使用matplotlib在一个数组中,其浮点数介于0到1之间。
我正在用imshow显示此数组,我试图创建一个与Greens相同的自定义cmap,但是当一个单元格变为0时,我希望能够将该值映射为红色,而其余光谱不变。
如果有人更熟悉matplotlib能够帮助我,我将不胜感激!
例如,我将如何编辑此脚本,以使矩阵中的零值显示为红色?
import numpy as npfrom 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 npfrom 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