seaborn单变量、多变量及回归分析绘图

本文介绍了使用Seaborn库进行单变量及回归分析的方法,包括如何绘制直方图、密度曲线等图表,以及如何利用jointplot和regplot展示变量间的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上节简单介绍seaborn的主题设置和调色板设定。这一部分介绍使用seaborn进行单变量和回归分析。

首先,确定单变量应该使用怎样的图来表示?最佳的表示法为直方图。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import stats, integrate
import seaborn as sns
sns.set(color_codes=True)
np.random.seed(sum(map(ord, "distributions")))
%matplotlib inline
使用sns.distplot()函数画直方图

x = np.random.normal(size=100)
# 直方图
with sns.axes_style("white"):
    sns.distplot(x, kde=False)

设置bin值。

with sns.axes_style("ticks"):
    sns.distplot(x, bins=20, kde=False)
    sns.despine()

还可以通过设置密度曲线和边际毛毯

x = np.random.gamma(6, size=200)
sns.distplot(x, kde=True, rug= True) # kde 密度曲线  rug 边际毛毯
# sns.kdeplot(x, shade= True) # shade 阴影

再来看如果要将一个变量和另一个变量表示在一张图上,从而看两个变量的分布关系。

# 根据均值和协方差生成数据
mean, cov = [0,1], [(1, .5), (.5, 1)]
data = np.random.multivariate_normal(mean, cov, 200)
df = pd.DataFrame(data, columns=["x", "y"])
df.head()

使用sns.jointplot()函数画图

sns.jointplot("x", "y", df)

如果,数据量较大的时候,也可以使用设置kind参数。

x, y = np.random.multivariate_normal(mean, cov, 1000).T
with sns.axes_style("white"):
    sns.jointplot(x, y, kind="hex", color="b")

然后,我们再来看回归分析。通过seaborn读取自带的数据集iris。使用pairplot()函数可以画全局图,即两两变量之间的分布关系

iris = sns.load_dataset("iris")
sns.pairplot(iris)

再导入另一个数据集tips。

tips = sns.load_dataset("tips")
使用 regplot()和lmplot()都可以绘制回归关系,推荐regplot()。

sns.regplot(x="total_bill", y="tip", data=tips)

sns.regplot(x="size", y="tip", data=tips)

出现这种情况时(数据点有重叠),可以使用一个参数设定解决。

sns.regplot(x="size", y="tip", data=tips, x_jitter=.05)

最后,我们看来多变量怎么绘图。

sns.stripplot(x="day", y="total_bill", data=tips)

sns.stripplot(x="day", y="total_bill", data=tips, jitter=True)

sns.swarmplot(x="day", y="total_bill", data=tips, hue="sex")

sns.swarmplot(x="total_bill", y="day", data=tips, hue="time")

sns.violinplot(x="total_bill", y="day", data=tips, inner=None)
sns.swarmplot(x="total_bill", y="day", data=tips, color="w", alpha=.5)

还有一些功能画板,可以直接画各种各样的图。下次,我们再介绍吧。谢谢~

















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值