Seaborn具有以下特点:
1.基于matplotlib绘图风格,增加了一些绘图模式。
2.增加调色板功能,具有色彩丰富的显示数据的模式。
3.面向整个数据集,可以显示多个变量之间的关系。
4.可视化单变量和双变量分布以及在数据子集间进行比较。
5.不同种类因变量的线性回归模型的自动估计和绘图。
6.方便查看复杂数据集的整体结构。
7.灵活处理时间序列数据。
8.利用网络建立复杂图像集。
可以使用get_dataset_names函数获取全部内置数据集的名称。使用load_dataset函数导入数据。
下面以鸢尾花数据集作为例子:
import seaborn as sns
#导入数据
iris=sns.load_dataset('iris')
有五种预设的主题:
darkgrid | 灰色背景+白网格 |
whitegrid | 白色背景+黑网格 |
dark | 仅灰色背景 |
white | 仅白色背景 |
ticks | 坐标轴带刻度 |
函数:sns.set_style()
用来设置输出图片元素的大小尺寸。
函数:sns.plotting_context(context=)
context有以下四种:paper、notebook、talk、poster
用来移除任意位置的边框,调节边框位置,修建边框长短。
函数:sns.despine(fig=None,ax=None,top=True,right=True,left=False,bottom=False,offset=None,trim=False)
offset=10,表示两个坐标轴离开的距离。
默认无参状态:sns.despine()为只保留左边框和下边框。
函数:color_palette
用于区分没有固定排序的离散数据。
默认颜色主题有6种不同的变化:deep、muted、pastel、bright、dark、colorblind,默认为deep。
palette=sns.color_palette('muted')
sns.palplot(palette)
#或者
sns.palplot(sns.color_palette('muted'))
1)使用圆形颜色系统
绘制均匀间隔的颜色(色调在保持亮度和饱和度不变的同时变化)。
最常用的方法是使用hls的颜色空间。
sns.palplot(sns.color_palette("hls",8))
也可以使用hls_palette函数来控制亮度和饱和度。
sns.palplot(sns.hls_palette(8,l=.3,s=.8)) #l控制亮度,s控制饱和度
使用husl使得亮度与饱和度与我们视觉一致:
sns.palplot(sns.color_palette("husl",8))
2)使用xkcd颜色
xkcd是对随机的rgb空间颜色的命名,产生了许许多多可以随时通过xkcd_rgb字典调用的颜色。也可以通过xkcd_palette函数使用自定义调色板。
plt.plot(x,y,sns.xkcd_rgb['pale red'])
#自定义调色板
colors=['windows blue','amber','greyish','faded green','dusty purple']
sns.palplot(sns.xkcd_palette(colors))
当数据从相对较低或不感兴趣的值到相对较高或有趣的值时,通常使用连续映射。
对于连续的数据,最好是使用在色调上有相对细微变化的调色板,同时在亮度和饱和度上有很大的变化。
Color Brewer库中的调色板以调色板中的主色命名。如果希望反转亮度渐变,则可以在调色板名称后面添加后缀“_r";如果希望区分颜色鲜艳的线,可以在调色板后面添加后缀”_d"
sns.palplot(sns.color_palette("Greens"))
sns.palplot(sns.color_palette("YlOrRd_r")
一些调色板名称与渐变顺序如下:
YlOrRd | 黄橙红 |
YlGn | 黄绿 |
Reds | 红 |
RdPu | 红紫 |
PuBuGn |
紫蓝绿 |
Oranges | 黑 |
BuPu | 蓝紫 |
BuGn | 蓝绿 |
Blues | 蓝 |
Greys | 白 |
对于自定义连续调色板,可以调用light_palette函数和dark_palette函数进行单一颜色“播种”。种子可产生从浅色或深色到该色的调色板。
任何有效的matplotlib颜色都可以传递给以上两个函数,包括hls空间或husl空间的rgb元组和xkcd颜色的种子。
sns.palplot(sns.light_palette("blue"))
sns.palplot(sns.dark_palette("yellow"))
离散调色板多用于数据中通常有一个定义明确的中点,并且极端大值和极端小值都很重要。
选择离散调色板的规则是:两端起始的色调具有相似的亮度和饱和度,且向中间聚拢的过程中经过色调偏移后在终点处和谐的相遇。但尽量避免使用红色和绿色。
1)默认较好的调色板
Color Brewer中有一组精心设计的离散颜色映射:
snpalplot(sns.color_palette("BrBG",7))
sns.palplot(sns.color_palette("RdBu_r",7))
Matplotlib中内置了coolwarm这个离散调色板,但是中点和极值之间对比度较小:
sns.palplot(sns.color_palette("coolwarm",7))
2)自定义离散调色板
可以使用diverging_palette函数为离散数据创建自定义调色板。该函数使用husl颜色空间创建不同的调色板。
常用参数:
h_neg | 接收0-359的float,表示调色板负面范围色调。 |
h_pos | 接收0-359的float,表示调色板正面范围色调。 |
s | 0-100,float,两个范围色调饱和度。 |
l | 0-100,float,两个范围色调亮度。 |
n | int,调色板颜色数目。 |
center | light或dark,调色板中间是明是暗。 |
as_cmap | bool,是否返回matplotlib颜色映射,默认不反回。 |
sns.palplot(sns.diverging_palette(240,10,n=7)