seaborn 还拥有强大的调色能力,并且操作简单
使用调色板的方法
seaborn.color_palette(palette=None, n_colors=None, desat=None)
Return a list of colors defining a color palette. 返回的是一个调色板定义的一个颜色列表。
这个方法的参数就没有以前的多了
Parameters:
palette: None, string, or sequence, optional
可以不写,可以填写字符串,也可以是一个序列
Name of palette or None to return current palette. If a sequence, input colors are used but possibly cycled and desaturated.这里需要注意的是,如果填写的是一个序列,当用完这些颜色的时候,就会进行颜色循环使用,这对显示的图像来说是不太友好的。
n_colors : int, optional
可以指定颜色的数量,上面那个参数说了,如果颜色用完就会循环,这样很不好,这里可以指定需要的颜色数量,这样就友好了很多。
Number of colors in the palette. If None, the default will depend on how palette is specified. Named palettes default to 6 colors, but grabbing the current palette or passing in a list of colors will not change the number of colors unless this is specified. Asking for more colors than exist in the palette will cause it to cycle.
如果不指定这个参数,将会使用默认的调色板,默认的调色板有6个颜色。
desat : float, optional
浮点数,可选
Proportion to desaturate each color by.按照比例降低每一种颜色的饱和度。
Returns:
palette : list of RGB tuples. 返回一个颜色三元组列表(默认是6个)
已经把参数说完了,不过还是把官方文档的地址贴出来吧:官方文档传送门
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series, DataFrame
# 强大的调色功能
def sinplot():
x = np.linspace(0, 14, 100)
plt.figure(figsize = (8, 6))# 8 * 6
for i in range(4):
plt.plot(x, np.sin(x + i) * (i + 0.75),
label = 'sin(x + %s) * (%s + 0.75)' % (i, i))
plt.legend()
plt.show()
import seaborn as sns
sinplot()
# 创建 调色板
# print(sns.color_palette())
''' 每一个元素都是一个 rgb 三元组
[(0.12156862745098039, 0.4666666666666667, 0.7058823529411765),
(1.0, 0.4980392156862745, 0.054901960784313725),
(0.17254901960784313, 0.6274509803921569, 0.17254901960784313),
(0.8392156862745098, 0.15294117647058825, 0.1568627450980392),
(0.5803921568627451, 0.403921568627451, 0.7411764705882353),
(0.5490196078431373, 0.33725490196078434, 0.29411764705882354),
(0.8901960784313725, 0.4666666666666667, 0.7607843137254902),
(0.4980392156862745, 0.4980392156862745, 0.4980392156862745),
(0.7372549019607844, 0.7411764705882353, 0.13333333333333333),
(0.09019607843137255, 0.7450980392156863, 0.8117647058823529)]
'''
# 将画板 画出来
sns.palplot(sns.color_palette())
# 有如下种配色方案
pal_style = ['deep', 'muted', 'pastel', 'bright', 'dark', 'colorblind']
sns.palplot(sns.color_palette('dark'))
# 设置 配色方案
sns.set_palette(sns.color_palette('dark'))
sinplot() # 图1
# 恢复默认状态
sns.set()
# 通过 with 控制 上下文管理
with sns.color_palette('dark'): # 在with 的内容就和with 之后的不同了
sinplot() # 图2
# 所需要的色板颜色大于6个,应该怎么办呢?
sns.color_palette() # 可以传入 具体的 数值,可以手动自定义
# 如下:
pall = sns.color_palette([(0.5, 0.1, 0.7), (0.3, 0.1, 0.9)])
sns.palplot(pall) # 该方式也不是很方便,毕竟需要手动写入
sinplot() # 图3
# 使用 sns 提供的方法(推荐)
sns.color_palette('hls' , 8) # 第二个参数 8,生成八个参数的画板