在matplotlib中使用RGB颜色的单元格显示类似矩阵的图像

Eve*_*iar 5 python matplotlib

我有一个3(或更多)颜色序列存储为RGB值(或相应的十六进制),我想显示如下:

在此输入图像描述

遵循并修改这里的建议我能够有点接近,虽然我不太清楚我是否理解颜色如何作为单个浮点表示.无论如何我可以将RGB /十六进制表示转换为matshow()使用的任何内容吗?或者,是否有更优雅的方式产生上述输出?谢谢!

Hoo*_*ked 4

有一个名为seaborn的包装器位于 matplotlib 之上,可以很好地显示颜色图或选定的颜色。例如

sns.palplot(sns.color_palette("coolwarm", 7))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我建议使用标准 matplotlib,因为它提供了对使用颜色方案和转换的更多支持,如问题的其他部分所述。如果您不想使用外部库,只需修改绘制此图的源代码:

def palplot(pal, size=1):
    """Plot the values in a color palette as a horizontal array.

    Parameters
    ----------
    pal : sequence of matplotlib colors
        colors, i.e. as returned by seaborn.color_palette()
    size :
        scaling factor for size of plot

    """
    n = len(pal)
    f, ax = plt.subplots(1, 1, figsize=(n * size, size))
    ax.imshow(np.arange(n).reshape(1, n),
              cmap=mpl.colors.ListedColormap(list(pal)),
              interpolation="nearest", aspect="auto")
    ax.set_xticks(np.arange(n) - .5)
    ax.set_yticks([-.5, .5])
    ax.set_xticklabels([])
    ax.set_yticklabels([])
Run Code Online (Sandbox Code Playgroud)