Python数据分析-绘图-2-Seaborn进阶绘图-1-基础配置

  • Post author:
  • Post category:python


Seaborn具有以下特点:

1.基于matplotlib绘图风格,增加了一些绘图模式。

2.增加调色板功能,具有色彩丰富的显示数据的模式。

3.面向整个数据集,可以显示多个变量之间的关系。

4.可视化单变量和双变量分布以及在数据子集间进行比较。

5.不同种类因变量的线性回归模型的自动估计和绘图。

6.方便查看复杂数据集的整体结构。

7.灵活处理时间序列数据。

8.利用网络建立复杂图像集。

一、Seaborn基础


1.简单绘图

可以使用get_dataset_names函数获取全部内置数据集的名称。使用load_dataset函数导入数据。

下面以鸢尾花数据集作为例子:

import seaborn as sns
#导入数据
iris=sns.load_dataset('iris')


2.绘图风格

(1)主题样式

有五种预设的主题:

darkgrid 灰色背景+白网格
whitegrid 白色背景+黑网格
dark 仅灰色背景
white 仅白色背景
ticks 坐标轴带刻度

函数:sns.set_style()

(2) 元素缩放

用来设置输出图片元素的大小尺寸。

函数:sns.plotting_context(context=)

context有以下四种:paper、notebook、talk、poster

(3)边框控制

用来移除任意位置的边框,调节边框位置,修建边框长短。

函数:sns.despine(fig=None,ax=None,top=True,right=True,left=False,bottom=False,offset=None,trim=False)

offset=10,表示两个坐标轴离开的距离。

默认无参状态:sns.despine()为只保留左边框和下边框。

3.调色板

函数:color_palette

(1)定性调色板

用于区分没有固定排序的离散数据。

默认颜色主题有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))

(2)连续调色板

当数据从相对较低或不感兴趣的值到相对较高或有趣的值时,通常使用连续映射。

对于连续的数据,最好是使用在色调上有相对细微变化的调色板,同时在亮度和饱和度上有很大的变化。

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"))

(3)离散调色板

离散调色板多用于数据中通常有一个定义明确的中点,并且极端大值和极端小值都很重要。

选择离散调色板的规则是:两端起始的色调具有相似的亮度和饱和度,且向中间聚拢的过程中经过色调偏移后在终点处和谐的相遇。但尽量避免使用红色和绿色。


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)



版权声明:本文为weixin_44020827原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。