现代人的时间越来越碎片化,因此我们准备抛弃那种长篇大论的教程,希望大家每天花上几分钟就可以学到一个小窍门或者某种图的绘制方法。只要每天都认真看一遍文章,有时间的时候花几分钟练习一下,一段时间之后,相信大家就都成为Python可视化的高手啦!
接下来,我们目标不大,一天学习并掌握一个实用的小案例就够了!
回归图
今天,我们学习的是使用seaborn绘制回归图。
回归图主要用于表现两个变量之间的线性关系,一般情况下,它在散点图的基础上,会增加一条直线(也有可能是曲线),这条线就是statsmodels
中使用最小二乘法预测的两个变量的关系:y = ax + b
。
回归图有非常丰富的应用场景,比如:
- 我们想知道广告费和营收、净利润之间是否成正比;
- 我们想知道用户日均活跃时长与用户创建天数之间的关系是什么;
- 我们想知道用户的生命周期价值(LTV)与用户获取成本之间的关系;
- 我们想知道学生的日均学习时长与成绩之间的关系;
- ……
看来我们有更多的理由来学习回归图了,毕竟它是一个应用超广泛的图形!
我们先看一下代码和效果:
import seaborn as sns
sns.set(style="ticks")
# Load the example dataset for Anscombe's quartet
df = sns.load_dataset("anscombe")
# Show the results of a linear regression within each dataset
sns.lmplot(x="x", y="y", col="dataset", hue="dataset", data=df,
col_wrap=2, ci=None, palette="muted", height=4,
scatter_kws={"s": 50, "alpha": 1});
那么接下来我们就详细讨论下绘图过程的细节。
-
x
/y
/data
:前两个参数用于指定列名,第三个参数用于指定数据。在seaborn
中,我们会经常使用pandas DataFrame
格式的数据,seaborn
对于pandas
有极为良好的支持。 -
col
/row
:用于指定图中行和列所对应的变量,比如我们用dataset
变量传递给col
,那么在我们的图中,由于dataset
变量有四个取值,因此每个取值对应的子数据集会被绘制到单独的一列,一共四列(这里看到的不是四列,我们下边会讲到为什么)。 -
hue
:用于指定色彩变量,在我们这张图中,hue
变量也是dataset
,所以这四组数据会在被分到四列的同时,也被分别绘制成四种不同的颜色。 -
col_wrap
:这个参数就是明明我们的dataset
变量有四种取值,但图中看起来还是两列的原因。这个参数指定了再达到多少列以后,会进行折行。我们在这里指定了2,因此我们将原本的4列转换成了2行*两列。 -
ci
:confidence interval,置信区间。这个过程是使用自助采样法,对样本多次重复抽样,得到样本均值的分布,并将其95%的置信区间绘制出来。 -
palette
:调色板,这个用于控制hue
变量所展示的颜色。在分类(离散)变量中,我们一般会指定一组不同色调的颜色(针对连续变量,我们经常会使用同一个颜色的不同亮度、饱和度来表现)。 -
height
:注意,这里指的是每个子图的高度,如果还想控制宽度的话,那就要再指定aspect
参数来控制宽高比。 -
scatter_kws
:字典形式,用于控制散点的更多细节。这一组参数会隐式地传入更底层的plt.scatter
函数中,因此这里可以输入任何plt.scatter
支持的参数。在这里,我们用size
和alpha
分别控制了散点的大小和透明度。
好了,今天我们学习了使用seaborn.lmplot()
来绘制回归图,它用于表现两个变量之间的线性关系。
你学会了吗?