python数据集分布可视化_Python数据可视化——分布数据可视化

5bed23130c68be106b15c684de52ceae.png

这篇文章是Python可视化seaborn系列的第二篇文章,本文将详解seaborn如何探索数据的分布。

c3f47ff371965b85148cbe3a98babf62.png

1670826083cc29586ce8142a0b948dae.png

单变量

直方图 displot

seaborn.distplot(a, bins=None, hist=True, kde=True, rug=False, fit=None, hist_kws=None, kde_kws=None, rug_kws=None, fit_kws=None, color=None, vertical=False, norm_hist=False, axlabel=None, label=None, ax=None)

bins → 箱数

hist、ked、rug → bool,是否显示箱/密度曲线/数据分布

norm_hist → 直方图是否按照密度来显示,如果为False,显示计数

{hist,kde,rug,fit} _kws:字典,对应部分的各种参数。

vertical → 是否水平显示

fit → 可结合scipy库在图像上做拟合

label → 图例

axlabel → x轴标注

b33adbc3b65aff7d338b54894820557d.png

10e4d43e1bf17be20d3e28967ee641e1.png

0feea388be7fad685ef528bffcfd1fa6.png

b5ee6c8b68a0b0ac2cf3bd5c6b36652b.png

核密度估计图 kdeplot

核密度估计的步骤:

每一个观测附近用一个正态分布曲线近似

叠加所有观测的正态分布曲线

归一化

seaborn.kdeplot(data,data2 = None,shade = False,vertical = False,kernel ='gau',bw ='scott',gridsize = 100,cut = 3,clip = None,legend = True,cumulative = False,shade_lowest = True,cbar = False,cbar_ax =无,cbar_kws =无,ax =无, kwargs )

shade: 如果为True,则用颜色填充KDE曲线下方的区域(或者在数据为双变量时用颜色填充的轮廓)

kernel: {‘gau’|‘cos’|‘biw’|‘epa’|‘tri’|‘triw’} 用于拟合的核,双变量值能用高斯核(gau)

bw: {'scott'|'silverman'|标量|一对标量} 确定核的大小,近似理解为拟合程度,bw越大,曲线越平缓。

gridsize:int, 网格中的离散点数

cumulative :是否绘制累积分布

cbar:参数若为True,则会添加一个颜色条(颜色条在双变量kde图像中才有)

4decb9bed8ffd85e8d0cd30e1c4b1f94.png

ab6570aa5e5ac389f5e3fc39ba73ec25.png

a0235d0a9136e8e61157685a072500cc.png

46b8b042f40274d449d6b4a53df08b0e.png

核密度分布图不但能绘制单个变量的,也能绘制双变量!!!

637f051b178035f47361fb72fcbd3c5c.png

6bdeaccb5f2da48fdaa5bbb0bf34a3af.png

双变量

jointplot

seaborn.jointplot(x,y,data = None,kind ='scatter',color = None,size = 6,ratio = 5,space = 0.2,dropna = True,xlim = None,ylim = None,joint_kws = None,marginal_kws =None,annot_kws =None, kwargs )

该函数是JoinGrid类的一个轻量级界面,如果想更加灵活的绘制,可以使用JoinGrid函数

kind: 设置类型:“scatter”、“reg”、“resid”、“kde”、“hex”

size: int, 图像大小(图像自动调整为正方形)

radio: int, 主图与边缘图的高度比

space: # 设置主图和边缘图的间距

{x,y} lim :在绘图之前设置轴限制

{joint,marginal,annot} _kws:dicts 绘图组件的其他关键字参数

86c53ff014cc3e6ffdbadb0fbdf54331.png

5938bee887ee0e78ac2c8f02eda895ea.png

seaborn会直接给出变量的皮尔逊相关系数和P值

pearson相关系数计算:

5af46c8f3ab73303079011f1379bf6d7.png

p:样本间的差异由抽样误差所致的概率小于p.

048d45412e9459fea07db3b2500611f7.png

ce5b623d8f4c209218cf3346d27fa029.png

7d70ea705d48705c9dd9801cb9d922d3.png

4b764a4208cb7423accb5cf5c0cac19e.png

58a419a5a3e02adbf4387bc6132ae91a.png

JointGrid

前面讲过jointplot其实是JoinGrid的一个封装,要想有更灵活的设置,可以使用JoinGrid类

__init__(x,y,data = None,size = 6,ratio = 5,space = 0.2,dropna = True,xlim = None,ylim = None)

方法:

plot(joint_func,marginal_func ,annot_func)→ 绘制完整的图形

plot_joint(func,** kwargs)→ 绘制双变量图形

plot_marginals(func,** kwargs)→ 绘制边缘单变量图形

savefig(args,* kwargs)→ 保存

set_axis_labels([xlabel,ylabel])→ 在双变量轴上设置轴标签。

691c915acf99d383b69eb47461356a5c.png

a680c6db7a8b067d54d7e5fe75965b59.png

3ec221cd48dfbe4aba83c9958ae4488e.png

12c0d647e93500cf50989f8b27d92488.png

89805294d897b8c7c2017f285e1cde6a.png

f92f02071d267c7956510e0b25590354.png

探索两两变量之间的关系

通常我们的数据并不是只有一个或者两个变量,那么对于多个变量,我们常需要探索两两变量之间的分布及关系这是我们就需要使用pairplot函数 或者是PairGrid类

pairplot

seaborn.pairplot(data,hue = None,hue_order = None,palette = None,vars = None,x_vars = None,y_vars = None,kind ='scatter',diag_kind ='auto',markers = None,s = 2.5,aspect = 1,dropna = True,plot_kws = None,diag_kws = None,grid_kws = None)

hue: string(变量名) : 颜色将按照指定的变量分类

hue_order : list 设置调色板色调变量级别

palette : 调色板

vars : list 变量名称列表,否则使用所有数值型变量的列

markers: 点样式

4cfb8f316525b652ec4199173db80f39.png

sepal_length sepal_width petal_length petal_width species

5.1 3.5 1.4 0.2 setosa

4.9 3.0 1.4 0.2 setosa

4.7 3.2 1.3 0.2 setosa

4.6 3.1 1.5 0.2 setosa

5.0 3.6 1.4 0.2 setosa

6da119edd1ef9cbcd019857215d9301f.png

31e66bb2cbb04748fdeb96106f339838.png

03e32e19c7250a358a6a24f1d979c7da.png

PairGrid

相当于jointplot 和 JointGrid的关系,PairGrid 对矩阵散点图有着更为灵活的控制

__init__(data,hue = None,hue_order = None,palette = None,hue_kws = None,vars = None,x_vars = None,y_vars = None,diag_sharey = True,size = 2.5,aspect = 1,despine = True,dropna = True)

方法:

add_legend([legend_data,title,label_order])绘制一个图例,可能将其放在轴外并调整图形大小。

map_diag(func,** kwargs):在每个对角线子图上绘制具有单变量函数的图。

map_lower(func,** kwargs):在下对角线子图上绘制具有双变量函数的图。

map_upper(func,** kwargs):在上对角线子图上绘制具有双变量函数的图

map_offdiag(func,** kwargs):在非对角线子图上绘制具有双变量函数的图。

set(** kwargs):在每个子图集Axes上设置属性。

64e361094ee7da83753f30343442ac78.png

80d91e24d21e45b88ecdc7a615c45790.png

看再多次,都不如自己亲自动手写一次,只有在实际应用中不断练习,思考,调整。才能理解掌握数据可视化的技能。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值