美文网首页
seaborn(sns) 没有你想用的颜色?自定义cmap调色盘

seaborn(sns) 没有你想用的颜色?自定义cmap调色盘

作者: 粉色的蛋 | 来源:发表于2020-02-27 18:34 被阅读0次

    本文将使用鲍鱼数据集 abalone 为大家演示

    seaborn可通过设置cmap参数来选择色集绘制图表,例如我现在使用的是蓝色色集

    sns.heatmap(dfData, annot=True, vmax=1, square=True, cmap="Blues")
    

    (鲍鱼各特征自相关图)

    当然你可以试试别的主题色 ,同样通过更改色集的方式实现,比如说橙色

    sns.heatmap(dfData, annot=True, vmax=1, square=True, cmap="Oranges")
    

    系统自带的色集有很多

    Accent, Accent_r, Blues, Blues_r, 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, Pastel2, Pastel2_r, PiYG, PiYG_r, PuBu, PuBuGn, PuBuGn_r, PuBu_r, PuOr, PuOr_r, PuRd, PuRd_r, Purples, Purples_r, RdBu, RdBu_r, RdGy, RdGy_r, RdPu, RdPu_r, RdYlBu, RdYlBu_r, RdYlGn, RdYlGn_r, Reds, Reds_r, Set1, Set1_r, Set2, Set2_r, Set3, Set3_r, Spectral, Spectral_r, Wistia, Wistia_r, YlGn, YlGnBu, YlGnBu_r, YlGn_r, YlOrBr, YlOrBr_r, YlOrRd, YlOrRd_r, afmhot, afmhot_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r, cividis, cividis_r, cool, cool_r, coolwarm, coolwarm_r, copper, copper_r, cubehelix, cubehelix_r, flag, flag_r, gist_earth, gist_earth_r, gist_gray, gist_gray_r, gist_heat, gist_heat_r, gist_ncar, gist_ncar_r, gist_rainbow, gist_rainbow_r, gist_stern, gist_stern_r, gist_yarg, gist_yarg_r, gnuplot, gnuplot2, gnuplot2_r, gnuplot_r, gray, gray_r, hot, hot_r, hsv, hsv_r, icefire, icefire_r, inferno, inferno_r, jet, jet_r, magma, magma_r, mako, mako_r, nipy_spectral, nipy_spectral_r, ocean, ocean_r, pink, pink_r, plasma, plasma_r, prism, prism_r, rainbow, rainbow_r, rocket, rocket_r, seismic, seismic_r, spring, spring_r, summer, summer_r, tab10, tab10_r, tab20, tab20_r, tab20b, tab20b_r, tab20c, tab20c_r, terrain, terrain_r, twilight, twilight_r, twilight_shifted, twilight_shifted_r, viridis, viridis_r, vlag, vlag_r, winter, winter_r
    

    但如果这些还不能满足你的要求,怎么办?

    老板:你这个蓝色渐变颜色最深的地方都成黑色了,能不能不要那么深,从浅蓝到深蓝就可以了

    这时我们就要在原有的色集上修改

    sns.palplot(sns.color_palette("Blues", 10)) 
    

    首先用sns.color_palette将‘Blues’色集按照纯度将其10等分,sns.palplot()可以将色集打印出来


    new_blues=sns.color_palette("Blues", 10)[0:7]
    

    之后取前7份作为新的色集‘new_blues’



    在画图的时候直接使用新的色集‘new_blues’就可以了

     sns.heatmap(dfData, annot=True, vmax=1, square=True, cmap=new_blues)
    

    如果觉得颜色不够细腻的话就将10改为1000将其1000等分后取前700

    new_blues=sns.color_palette("Blues", 1000)[0:700]
    

    seaborn 官方说明文档(调色盘)
    http://seaborn.pydata.org/tutorial/color_palettes.html
    完整代码

    import pandas as pd
    import numpy as np
    %matplotlib inline
    df1=pd.read_csv("abalone_data.csv")
    
    sns.palplot(sns.color_palette("Blues", 10))
    
    sns.palplot(sns.color_palette("Blues", 10)[0:7])
    
    new_blues=sns.color_palette("Blues", 10)[0:7]
    
    
    import seaborn as sns
    import matplotlib.pyplot as plt
    sns.set(font='SimHei',font_scale=2)
    def test_b(df):
        dfData = df.corr()
        plt.subplots(figsize=(15, 15)) # 设置画面大小
        sns.heatmap(dfData, annot=True, vmax=1, square=True, cmap=new_blues)
        
        plt.savefig('./RdBu_rStateRelation_b.png')
        plt.show()
    test_b(df1)
    

    相关文章

      网友评论

          本文标题:seaborn(sns) 没有你想用的颜色?自定义cmap调色盘

          本文链接:https://www.haomeiwen.com/subject/tllxhhtx.html