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