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

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

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常见绘图学习总结(分布图))