海运 |回归图
seaborn 中的回归图主要用于添加视觉指南,有助于在探索性数据分析期间强调数据集中的模式。顾名思义,回归图在 2 个参数之间创建一条回归线,并有助于可视化它们的线性关系。本文处理 seaborn 中的这些类型的地块,并展示了可以调整以更改此类地块的大小、纵横比、比例等的方法。
Seaborn不仅是一个可视化库,还是一个内置数据集的提供者。在这里,我们将使用 seaborn 中名为“tips”的此类数据集之一。小费数据集包含有关可能在餐厅用餐的人以及他们是否留下小费的信息。它还提供有关人们性别的信息,包括他们是否吸烟、日期、时间等。
在开始回归图之前,让我们先看一下数据集。
加载数据集
Python3
# import the library
import seaborn as sns
# load the dataset
dataset = sns.load_dataset('tips')
# the first five entries of the dataset
dataset.head()
Python3
sns.set_style('whitegrid')
sns.lmplot(x ='total_bill', y ='tip', data = dataset)
Python3
sns.set_style('whitegrid')
sns.lmplot(x ='total_bill', y ='tip', data = dataset,
hue ='sex', markers =['o', 'v'])
Python3
sns.set_style('whitegrid')
sns.lmplot(x ='total_bill', y ='tip', data = dataset, hue ='sex',
markers =['o', 'v'], scatter_kws ={'s':100},
palette ='plasma')
Python3
sns.lmplot(x ='total_bill', y ='tip', data = dataset,
col ='sex', row ='time', hue ='smoker')
Python3
sns.lmplot(x ='total_bill', y ='tip', data = dataset, col ='sex',
row ='time', hue ='smoker', aspect = 0.6,
size = 4, palette ='coolwarm')
输出
现在让我们从 seaborn 中的回归图开始。
seaborn 中的回归图可以在 lmplot()函数的帮助下轻松实现。 lmplot() 可以理解为一个基本上创建线性模型图的函数。 lmplot() 制作了一个非常简单的线性回归图。它创建了一个散点图,上面有一个线性拟合。
简单线性图
Python3
sns.set_style('whitegrid')
sns.lmplot(x ='total_bill', y ='tip', data = dataset)
输出
解释
指定 x 和 y 参数以提供 x 和 y 轴的值。 sns.set_style() 用于在背景中有一个网格,而不是默认的白色背景。 data 参数用于指定绘制绘图的信息源。
带有附加参数的线性图
Python3
sns.set_style('whitegrid')
sns.lmplot(x ='total_bill', y ='tip', data = dataset,
hue ='sex', markers =['o', 'v'])
输出
解释
为了使用这些图获得更好的分析能力,我们可以指定色调以在我们的图中进行分类分离,并使用来自 matplotlib 标记符号的标记。由于我们有两个单独的类别,我们需要在指定标记时传入符号列表。
设置绘图的大小和颜色
Python3
sns.set_style('whitegrid')
sns.lmplot(x ='total_bill', y ='tip', data = dataset, hue ='sex',
markers =['o', 'v'], scatter_kws ={'s':100},
palette ='plasma')
输出
解释
在这个例子中,seaborn 正在做的是它间接调用 matplotlib 参数来影响散点图。我们指定一个名为 scatter_kws 的参数。我们必须注意 scatter_kws 参数只改变散点图的大小,而不改变回归线的大小。回归线保持不变。我们还使用调色板参数来更改绘图的颜色。其余内容与第一个示例中的说明相同。
显示多个图
Python3
sns.lmplot(x ='total_bill', y ='tip', data = dataset,
col ='sex', row ='time', hue ='smoker')
输出
解释
在上面的代码中,我们通过在行和列的帮助下指定分隔来绘制多个图。每行包含数据集中指定的不同时间的小费与总账单的关系图。每列包含不同性别的小费与总账单的图表。通过根据人是否吸烟指定色调参数来进行进一步的分离。
地块的大小和纵横比
Python3
sns.lmplot(x ='total_bill', y ='tip', data = dataset, col ='sex',
row ='time', hue ='smoker', aspect = 0.6,
size = 4, palette ='coolwarm')
输出
解释
假设我们在输出中有大量的绘图,我们需要为它设置大小和纵横比以便更好地可视化它。
aspect:标量,可选指定每个 facet 的纵横比,因此“aspect * height”给出每个 facet 的宽度,以英寸为单位。
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。