1. Relational plots(关系图)
数据分析中就是理解变量如何相互关联,当这些关系被正确可视化时,我们往往可以从中获取某种关系或模式。
Relational plots 主要讨论三个函数:
- scatterplot(散点图)
- lineplot(线图)
- relplot(关系图)
首先,我们导入库函数:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
- 1
- 2
- 3
- 4
- 5
1.1 scatterplot(散点图)
散点图是利用散点来描述两个变量的联合分布,scatterplot 适用于变量都是数字的情况。在后面的Categorical plots(分类图)中,我们将会看到使用散点图可视化分类数据的专门工具。
#scatterplot参数
seaborn.scatterplot(x=None, y=None, hue=None, style=None, size=None,
data=None, palette=None, hue_order=None, hue_norm=None, sizes=None,
size_order=None, size_norm=None, markers=True, style_order=None,
x_bins=None, y_bins=None, units=None, estimator=None, ci=95, n_boot=1000,
alpha='auto', x_jitter=None, y_jitter=None, legend='brief', ax=None, **kwargs)
- 1
- 2
- 3
- 4
- 5
- 6
Seaborn函数中的参数特别多,但是其实大部分都是相同的,因此,我们可以很容易类推到其他函数的使用。下面简单介绍这些参数的含义。
- x,y: 传入的
特征名字或Python/Numpy数据
,x表示横轴,y表示纵轴,一般为dataframe中的列。如果传入的是特征名字,那么需要传入data,如果传入的是Python/Numpy数据,那么data不需要传入。因为Seaborn一般是用来可视化Pandas数据的,如果我们想传入数据,那使用Matplotlib也可以。 - hue: 分组变量,将产生不同颜色的点。可以是分类的,也可以是数字的。
被视为类别
。 - data: 传入的数据集,可选。一般是dataframe
- style: 分组变量,将产生不同标记点的变量分组。
被视为类别
。 - size: 分组变量,将产生不同大小的点。可以是分类的,也可以是数字的。
- palette: 调色板,后面单独介绍。
- markers: 绘图的形状,后面单独介绍。
- ci: 允许的误差范围(空值误差的百分比,0-100之间),可为‘sd’,则采用标准差(默认95)
- n_boot(int): 计算置信区间要使用的迭代次数
- alpha: 透明度
- x_jitter, y_jitter: 设置点的抖动程度。
下面给出两个例子
:
# 使用seaborn的数据
tips = sns.load_dataset('tips')
sns.scatterplot(x='total_bill',y='tip',data=tips)
plt.show()
- 1
- 2
- 3
- 4
sns.scatterplot(x='total_bill',y='tip',hue='day',style='time',size='size',data=tips)
plt.show()
- 1
- 2
1.2 lineplot(线图)
seaborn.lineplot(x=None, y=None, hue=None, size=None, style=None,
data=None, palette=None, hue_order=None, hue_norm=None, sizes=None,
size_order=None, size_norm=None, dashes=True, markers=None,
style_order=None, units=None, estimator='mean', ci=95, n_boot=1000,
sort=True, err_style='band', err_kws=None, legend='brief', ax=None, **kwargs)
- 1
- 2
- 3
- 4
- 5
参数和散点图差不多,所以直接上例子:
fmri = sns.load_dataset('fmri')
sns.lineplot(x="timepoint", y="signal", data=fmri)
# 阴影是默认的置信区间,可设置ci=0,将其去除