代码之家  ›  专栏  ›  技术社区  ›  Yasin Sahin

在plt.matshow()中指定cmap时出错

  •  1
  • Yasin Sahin  · 技术社区  · 1 年前

    每次在调用sns.color_palete()时试图定义cmap时,我都会遇到一个错误。我认为这与调色板的定义有关,但我不确定:

    colors = ["#1d4877", "#1b8a5a", "#fbb021", "#f68838", "#ee3e32"]
    sns.set_palette(colors)
    

    当我尝试设置它时:

    plt.matshow(num1.corr(), cmap=sns.color_palette())
    plt.show()
    

    我得到以下错误:

    ValueError:[(0.11372549019607843,0.2823529411764706,0.4666666666666667),(0.10588235294117747,0.5411764705882353,0.35294117647058826),(0.984313725490196,0.6901960784313725,0.12941176470588237),(09647058823529412,0.5333333333333333,0.2196078431372549),(0.9 333333333331333333333332333,0.24313725490196078,0.1960784313725490 2)]不是cmap的有效值;支持的值为“Accent”、“Accent_r”、“Blues’、“BrBG”、“BrBG_r”,“BuGn”、”BuGn_r“、”BuPu“、‘BuPu_r’、”CMRmap“、”CMRmap_r“、”Dark2“、’Dark2_r‘、”GnBu‘、‘GnBu_r’“、”Greens‘、”Greens_r‘、”Greys“、”Greys_r“,”OrRd‘、”OrRd_r“、“Oranges”“、”Oranges_r”“、“PRGn”“,'PRGn_r','Paired,'Paired_r','Pastel1','Pastel1_r','Pastel 2','Pastel 2_r','PiYG','PiYG_r',PuBu','PuBuGn','PuBuGn_r',“PuBu_r”、“PuOr”、”PuOr_r“、”PuRd“、”PuRd_r“、”Purples“、”Purples_r“、“RdBu”、”RdBu“、”RdGy“、'RdGy_r'、”RdPu“、'RdPu_r'、”RdYlBu'、”RdYlBu_r'、“RdYlGn”、'Reds'“、'Set1'、'Set1_r'、'Set2',“Set2_r',”Set3',“Set3_r','Spectral',”Wistia',“Wistia_r”,“YlGn”,“YilGnBu”,”YlGnBu_r“,”YlGn_r“,”YilOrBr',”Yl OrBr_r'“,”,“秋”、“秋_r”、“二进制”、“binary_r”,“骨骼”、“骨骼_r”和“brg”、“brg_r”、“bwr”、”bwr_r“、”civildis“、”Civildis_r“、“cool”、“cool_r”,“coolwarn”、”coolwarn_r“,”copper“、”crest“,”crest_r“”cubehelix“、”cubehli_r“、“flag’、”flare“、”gist_earth“,“gist_earth_r”、“gist_gray”、“register_gray_r”,“gist_heat”、“gitt_heat_r”、“regit_ncar”、”gist_rainbow“,“gist_rainbow_r”,“gist_stern”,“register_stern_r”、“gist_yarg”、“register_yarg_r”和“gnuplot”、“gnuplot2”、“gnuplot2_r”、“gnuplot_r”或“gray”、“gray _r”。nipy_spectral','nipy_sspectral_r','ocean','ocean_r','pink','pink_r','splasma','plasma_r','-prism','prism_r',“rainbow',”rainbow_r“,”rocket“,“rocket_r”“,”抗震“,”地震“,”春季“,”弹簧“,”夏季“,”夏日“,”tab10“,”tab10_r“、”tab20“、”tab20_r“”tab20b“,”选项卡20b_r“、”选项卡20c“、”表20c_r“,”地形“,”地面“,”涡轮“,”涡轮机“,”黄昏“,”twilight_r““,”'viridis','viridis_r','vlag','Vrag_r','winter','winter_r'

    我还试着调用sns.color_palete()函数,如下所示:

    plt.matshow(num1.corr(), cmap=sns.color_palette(as_cmap=True))
    plt.show()
    

    并且它仍然产生相同的错误。

    1 回复  |  直到 1 年前
        1
  •  1
  •   mozway    1 年前

    只需使用matplotib的 ListedColormap

    from matplotlib.colors import ListedColormap
    
    colors = ["#1d4877", "#1b8a5a", "#fbb021", "#f68838", "#ee3e32"]
    plt.matshow(np.arange(12).reshape(3, 4), cmap=ListedColormap(colors))
    

    但是,请注意,如果您有连续数据,则此cmap不适用。

    输出:

    enter image description here