颜色在可视化中非常重要,用来代表各种特征,并且提高整个图的观赏性。在Seaborn中颜色主要分为连续渐变性和离散分类性。
    Seaborn库主要用color_palette()函数实现颜色设置,color_palette()能传入任何Matplotlib所支持的颜色,不写参数则默认颜色。
    set_palette()设置所有图的颜色。Seaborn库有6个默认的颜色循环主题: deep、muted、pastel、 bright、dark、colorblind,默认颜色效果如图所示。

    1. import matplotlib.pyplot as plt # 导入matplotlib库
    2. import seaborn as sns # 导入seaborn库
    3. current_palette = sns.color_palette()
    4. sns.palplot(current_palette)
    5. plt.show()

    image.png
    Seaborn 默认颜色
    默认的颜色只有十种,当需要更多的颜色时,可以使用hls色彩空间,还可以通过hls_palette()函数来改变颜色的亮度和饱和度,显示效果如图所示。

    1. import matplotlib.pyplot as plt # 导入matplotlib库
    2. import seaborn as sns # 导入seaborn库
    3. current_palette = sns.color_palette()
    4. sns.palplot(current_palette) # 默认颜色空间
    5. sns.palplot(sns.color_palette("hls", 12)) # hls色彩空间
    6. sns.palplot(sns.hls_palette(8, l=.5, s=.7)) # l值为亮度,s 值为饱合度
    7. plt.show()

    image.png
    image.png
    image.png
    Seaborn 颜色设置
    例如在绘制箱线图时,应用hls色彩空间可以得到较好的显示效果。

    1. import numpy as np
    2. import matplotlib.pyplot as plt # 导入matplotlib库
    3. import seaborn as sns # 导入seaborn库
    4. data = np.random.normal(size=(20, 8)) + np.arange(8) / 2
    5. sns.boxplot(data=data) # 默认颜色空间
    6. plt.show()
    7. sns.boxplot(data=data, palette=sns.color_palette("hls", 8)) # hls色彩空间
    8. plt.show()

    image.png
    image.png
    可设置色彩随数据变换,例如要实现数据越来越重要颜色越来越深的效果,可以在颜色后加s实现。想要实现翻转渐变的效果,可以在面板名称中添加一个_r后缀,实现效果如图10.33所示。

    1. import matplotlib.pyplot as plt # 导入matplotlib库
    2. import seaborn as sns # 导入seaborn库
    3. current_palette = sns.color_palette()
    4. sns.palplot(current_palette) # 默认颜色空间
    5. sns.palplot(sns.color_palette("Blues")) # 颜色越来越深
    6. sns.palplot(sns.color_palette("BuGn_r")) # 翻转渐变
    7. plt.show()

    image.png
    image.png
    image.png