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

发布于 2021-01-29 14:59:40

我在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()
关注者
0
被浏览
103
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    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()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看