美文网首页
seaborn常见绘图学习总结(分布图)

seaborn常见绘图学习总结(分布图)

作者: Rambogoal | 来源:发表于2020-04-30 10:58 被阅读0次

    在做数据分析之前,有时需要对数据进行可视化,从宏观上对数据的分布有一个认识,进而更好的理解数据在实际项目中的意义。

    Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图更加容易,在大多数情况下使用seaborn就能做出很具有吸引力的图,而使用matplotlib能制作具有更多特色的图。应该把Seaborn视为matplotlib的补充,而不是替代物。

    一、目录:

    分布图

    • displot (直方图)
    • kedplot(概率密度图)
    • jointplot(联合密度图)
    • pairplot(多变量图)

    分类图

    • boxplot(箱线图)
    • violinplot(提琴图)

    回归图

    • lmplot (回归图)

    矩阵图

    • heatmap (热力图)

    seaborn可以画的图形很多,不仅仅限于上面的几种图,详见官方文档:http://seaborn.pydata.org/index.html

    总结的图形来源于官方文档、自己的相关数据可视化项目中

    二、分布图:

    2.1: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:int或list,控制直方图的有多少个箱体
    • hist:是否显示方块
    • kde:是否显示密度估计曲线
    • rug:控制是否生成观测数值的小细条(边际毛毯)
    • fit:控制拟合的参数分布图形,能够直观的评估图形与观察数据的对应关系(黑色线条为确定的分布)
    • -{hist, kde, rug, fit}_kws :参数接收字典类型,可以自行定义更多高级的样式;
    • norm_hist:若为True,则直方图的高度显示为密度而非计数(含有kde图像中默认为True)
    • vertical:放置的方向,如果为真,则观测值位于y-轴上(默认为False,x轴上)
    • axlabel:string、False、None,设置标签。



    2.2、kdeplot(概率密度图)

    概率密度图可以比较直观的看出数据样本本身的分布特征(作用效果与直方图中的kde效果类似),具体参数如下:

    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=None, cbar_kws=None, ax=None, **kwargs)
    
    • data、data2:表示可以输入双变量,绘制双变量核密度图;
    • shade:是否填充阴影,默认不填充;
    • vertical:放置的方向,如果为真,则观测值位于y轴上(默认False,x轴上);
    • kernel:{‘gau’ | ‘cos’ | ‘biw’ | ‘epa’ | ‘tri’ | ‘triw’ }。默认高斯核(‘gau’)二元KDE只能使用高斯核。至于什么是核函数,这个学问就大了,建议多看看论文;
    • bw:{‘scott’ | ‘silverman’ | scalar | pair of scalars }。四类核密度带方法,默认scott (斯考特带宽法),建议下来了解一下这四种方法的区别;
    • gridsize:这个参数指的是每个格网里面,应该包含多少个点,越大,表示格网里面的点越多(觉得电脑OK的可以试试,有惊喜),越小表示格网里面的点越少;
    • cut:参数表示,绘制的时候,切除带宽往数轴极限数值的多少,这个参数可以配合bw参数使用;
    • cumulative:是否绘制累积分布;
    • shade_lowest:是否有最低值渲染,这个参数只有在二维密度图上才有效;
    • clip:表示查看部分结果,是一个区间;
    • cbar:参数若为True,则会添加一个颜色棒(颜色帮在二元kde图像中才有);

    双变量密度图:


    2.3、jointplot(联合密度图)

    联合分布全称是联合概率分布,是两个及以上随机变量组成的随机变量的概率分布。即两个变量之间的联系与各个方向上的分布。具体参数如下:

    seaborn.jointplot(x, y, data=None, kind='scatter', stat_func=None, color=None, 
    height=6, ratio=5, space=0.2, dropna=True, xlim=None, ylim=None, joint_kws=None,
     marginal_kws=None, annot_kws=None, **kwargs)
    
    • x,y:为DataFrame中列名或者是两组数据
    • kind:{“scatter”|“reg”|“resid”|"kde"|"hex"}。表示联合图的类型,默认为散点图。
    • stat_func:用于计算统计量关系的函数(可以是自己定义的函数)
    • ratio:中心图与侧边图的比例,越大则中心图的占比越大
    • dropna:去除缺失值
    • height:图形的尺寸大小(正方形)
    • space:中心图与侧边图的间隔大小;
    • xlim,ylim:x,y的范围
    默认情况 kind为“reg” kind为“kde”

    2.4、pairplot(变量关系组图)

    绘制给定数据集中,默认数据之间两两关系的图。该函数将创建一个轴网络,这样数据中的每个变量都讲通过跨一行的y轴和跨单个列的x轴共享。而对角线中则为该列变量的单变量分布。具体参数如下:

    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,
     height=2.5, aspect=1, dropna=True, plot_kws=None, diag_kws=None, 
     grid_kws=None, size=None)
    
    
    • vars:data中的子集,否则为data中的全部数量型数据(定性性数据是不会分的)
    • kind:{“scatter”,“reg”};两两关系的图表类型,默认为scatter
    • diag_kind:{“auto”,“hist”,“kde”};单变量图(自己与自己比较)的绘图,对角线子图
    • hue:分类,按照某一列的定性数据分类
    默认情况 按照hue分类

    相关文章

      网友评论

          本文标题:seaborn常见绘图学习总结(分布图)

          本文链接:https://www.haomeiwen.com/subject/aubawhtx.html