首先,初始化设置
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(rc={"figure.figsize":(8,8)})
1. 分类颜色系统
分类色板有6种颜色,使用color_palette函数创建:
current_palette = sns.color_palette()
sns.palplot(current_palette)
分类色板有6套主题:deep, muted, pastel, bright, dark, colorblind.
使用调试版的方式:
data = np.random.normal(size=(20,8))+np.arange(8)/2
# 通过palette设置调色板
sns.boxplot(data=data,palette=current_palette)
2. 圆形颜色系统(circular color systems)
当有6个以上的图形需要区分时,最简单的方法就是在圆形的颜色空间中均匀的划分多个颜色。
sns.palplot(sns.color_palette("hls", 10))
可以使用hls_palette函数来控制明度和饱和度:
sns.palplot(sns.hls_palette(8, l=.6, s=.2))
使用调色板:
data = np.random.normal(size=(20,8))+np.arange(8)/2
current_palette =sns.hls_palette(8, l=.6, s=.8)
# 通过palette设置调色板
sns.boxplot(data=data,palette=current_palette)
3. Color Brewer
颜色成对出现,一浅一深。
# 10中颜色,成对出现
sns.palplot(sns.color_palette("Paired",10))
4. 使用xkcd颜色来命名颜色
通过调查,xkcd对954种颜色进行命名,可以在xkcd_rgb函数中使用这些名称
plt.plot([0, 1], [0, 1], sns.xkcd_rgb["pale red"], lw=3)
plt.plot([0, 1], [0, 2], sns.xkcd_rgb["medium green"], lw=3)
plt.plot([0, 1], [0, 3], sns.xkcd_rgb["denim blue"], lw=3);
5. 明度渐变色板
sns.palplot(sns.color_palette("Blues"))
如果要翻转渐变的方向,可以在颜色后加“_r”
sns.palplot(sns.color_palette("Blues_r"))
6. 使用cubehelix制作明度与色相渐变
sns.palplot(sns.color_palette("cubehelix",12))
使用cubehelix_palette函数可以提供参数进行控制:
# start取值(0,3),表示颜色,rot表示旋转,取值(1,-1)。dark表示暗部颜色,light表示亮部颜色, reverse表示翻转
sns.palplot(sns.cubehelix_palette(8, start=2, rot=0, dark=0, light=.95, reverse=True))
7.自定义渐变
sns.palplot(sns.light_palette("Blue", reverse=True))
sns.palplot(sns.dark_palette("purple"))
例如:
x,y =np.random.multivariate_normal([0,0],[[1,-.5],[-.5,1]],size=300).T
pal = sns.dark_palette("palegreen", as_cmap=True)
sns.kdeplot(x, y, cmap=pal);
参考:http://seaborn.pydata.org/tutorial/color_palettes.html