我有一系列3(或更多)颜色存储为RGB值(或相应的十六进制),我想将它们显示如下:
关注并修改建议here我能够稍微接近,但我不太清楚我是否理解颜色如何作为单个浮点表示。无论如何,我可以将RGB /十六进制表示转换为matshow()使用的任何内容吗?或者,是否有更优雅的方式产生上述输出? 谢谢!
答案 0 :(得分:4)
有一个名为seaborn的包装器位于matplotlib之上,可以很好地显示色彩映射或选定的颜色。 For example:
sns.palplot(sns.color_palette("coolwarm", 7))
我建议使用标准的matplotlib,因为它可以提供更多支持,可以使用颜色方案和转换,如问题的其他部分所述。如果您不想使用外部库,只需绘制modify the source code:
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([])