seaborn可视化

seaborn模块
在这里插入图片描述
seaborn分为一下两种绘制函数

  • 轴绘制函数 ( axes-level functions ),这一类函数把数据绘制到一个 matplotlib 的对象 matplotlib.pyplot.Axes ;
  • 图绘制函数 ( figure-level functions ),这一类函数是通过一个 seaborn 对象(通常是 FacetGrid )与 matplotlib 交互。

图绘制函数相当于对轴绘制函数做了一层封装,方便用户调用。在图绘制函数可以设置不同的kind关键字便可以调用对应的轴绘制函数。一般来讲图绘制函数就足够了。而若是需要用到更为复杂和精确的操作,那么就可以用轴绘制函数。它相当于对matplotlib的一个即插即用的补充工具。

sns加载数据load_dataset()报错问题

1. 变量分布图函数displot

用sns.boxplot():查看数值变量的取值范围,是否有异常值。

sns.boxplot(data=penguin_df,x="bill_length_mm")

利用boxplot可以画出其盒须图,包括

  • 理论最小值( m i n min min) 数据中小于理论最小值为异常值。
  • 下四分位数( Q 1 Q_1 Q1) 25%的数据小于该值
  • 中位数( m e d i a n median median)
  • 上四分位数( Q 3 Q_3 Q3) 75%的数据小于该值
  • 理论最大值( m a x max max)。数据中大于理论最大值为异常值。
    I Q R = Q 3 − Q 1 m i n = Q 1 − 1.5 ∗ I Q R m a x = Q 3 + 1.5 ∗ I Q R IQR = Q_3 - Q_1 \\ min = Q1 - 1.5*IQR \\ max = Q3 +1.5*IQR IQR=Q3Q1min=Q11.5IQRmax=Q3+1.5IQR

sns.displot():查看变量的分布情况

## 默认为直方图
seaborn.displot(data=None, *, x=None, y=None, hue=None, 
row=None, col=None, weights=None, kind='hist', rug=False, 
rug_kws=None, log_scale=None, legend=True, palette=None, 
hue_order=None, hue_norm=None, color=None, col_wrap=None, 
row_order=None, col_order=None, height=5, aspect=1, 
facet_kws=None, **kwargs)

displot默认为直方图,可以通过kind关键字设置为其他图

  • kind = "hist” 默认,类似于histplot(),绘制直方图
  • kind=“kde” 类似于kdeplot() 绘制核密度估计图
  • kind=“ecdf” 类似于ecdfplot() 绘制累积分布函数图
  • kid关键字只能绘制前三种图,而绘制边缘分布图,则需要则需要指定rug = True,类似于rugplot()

displot中,可以同时绘制直方图,核密度估计图。更直观地显示数据分布。

sns.displot(x="bill_length_mm",data=penguin_df,kde=True)

通过设置hue关键字,指定类别变量,显示不同种类分布

sns.displot(x="bill_length_mm",data=penguin_df,kind="kde",
hue="species")

设置log_scale=True,对skewed data偏斜数据取对数,使之分布更为均匀。

sns.displot(data=dia_df,x="price")
sns.displot(data=dia_df,x="price",log_scale=True)

设置rowcol分类展示不同子图

sns.displot(data=penguin_df,x="bill_length_mm",row="sex",
col="island",hue="species",kind="kde")

关系分析

sns.relplot():绘制数值变量关系图

seaborn.relplot(*, x=None, y=None, hue=None, size=None, 
style=None, data=None, row=None, col=None, col_wrap=None, 
row_order=None, col_order=None, palette=None, hue_order=None, 
hue_norm=None, sizes=None, size_order=None, size_norm=None, 
markers=None, dashes=None, style_order=None, legend='auto', 
kind='scatter', height=5, aspect=1, facet_kws=None, units=None, 
**kwargs)

绘制data数据中x和y两个列之间的分布关系
displot默认为散点图,可以通过kind关键字设置为其他图

  • kind="scatter"绘制散点图,调用scatterplot()
  • kind="line"绘制曲线图,调用lineplot(),比较适合时序图如股票
  • markers可以指定点的形状
  • style设置为不同类别设置不同形状

sns.lmplot():分析两个数值变量的线性关系

seaborn.lmplot(*, x=None, y=None, data=None, hue=None, col=None, 
row=None, palette=None, col_wrap=None, height=5, aspect=1, 
markers='o', sharex=None, sharey=None, hue_order=None, 
col_order=None, row_order=None, legend=True, legend_out=None, 
x_estimator=None, x_bins=None, x_ci='ci', scatter=True, 
fit_reg=True, ci=95, n_boot=1000, units=None, seed=None, order=1, 
logistic=False, lowess=False, robust=False, logx=False, 
x_partial=None, y_partial=None, truncate=True, x_jitter=None,
 y_jitter=None, scatter_kws=None, line_kws=None, facet_kws=None, 
 size=None)

sns.displot():绘制两个变量的联合分布

sns.displot(data=penguin_df,x="bill_length_mm",
y="bill_depth_mm",kind="kde",rug=True)

sns.jointplot():绘制两个变量的联合分布和各自分布

参考文献

jupyter教程
seaborn官网

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值