Python seaborn-3-violinplot, density, scatterplot & contour

本博客续接前面博客 histogram and boxplot 而来,主要介绍 viloinplot , density plot , scatter plot 和 contour

散点图用于描述两个变量的关系,一般用于点数较少的情形。如果点数过多,会出现相互覆盖的情况,此时用轮廓图更为适宜, 轮廓图也是 2D density plot 的表征

仍然采用 iris 数据集

1. violinplot

violinplots 和 boxplot 非常接近,但它还可以额外表示密度函数信息,因此非常适合用于大批量数据的场景,此时观测单个对象是不现实的。

请注意,表示多变量 violinplot 时,我们设置的是 data 变量,无须设置 xy。如果 xy 均设置的情况下,其中一个必须为 qualitative variable,否则无法分类

如果想水平显示,可以设置参数 orient = 'h' 或者颠倒 xy 的设置,boxplot 也是类似的

和 boxplot 类似,同样有 linewidthwidth

设置颜色和 boxplot 是同样是类似的,有 palettecolor 可以设置

grouped violinplot 通过 hue 参数实现,实现额外的分组功能

控制显示顺序,同样是 order 参数,可以回头看下 boxplot 是怎么控制的,当然看官方手册对 api 描述自然是最详细的

2. density plot

density plot shows the distribution of a numerical variable. 它和直方图非常类似。在 seaborn 中,采用 kdeplot 函数绘制 density plot,输入是一维数值变量

参数 shade 控制是否绘制阴影

和 histogram 类似,采用 vertical 判断绘制方向

最重要的参数来了,bw (bandwidth) 控制绘制间隔带宽,当带宽过大时,会损失一部分精度

在同一个 plot 上绘制多条 density plot, 只要多次调用 kdeplot 即可

3. scatterplot

绘制基本的散点图用 regplot 函数,其中 fit_reg 控制是否绘制回归直线,默认为 True

参数 scatter_kws 控制点的大小 ‘s’ –shape,颜色 ‘color’,透明度 ‘alpha’;

参数 marker 控制点的形状,所有选项包括:

[0, 1, 2, 3, 4, 'D', 6, 7, 8, 's', '|', 11, 'None', 'P', 9, 'x', 'X', 5, '_', '^', ' ', 'd', 'h', '+', '*', ',', 'o', '.', '1', 'p', '3', '2', '4', 'H', 'v', '', '8', 10, '<', '>'] , 注意这是和 matplotlib, matlab 兼容的

参数 line_kws 控制回归直线的颜色 (color), 透明度 (alpha), 以及 线宽 (“lw” – linewidth)

同样的,如果想再加一个分组,那么就要用 lmplot 函数了,采用 hue 参数可以设置分组依据,markers 可以控制每组的点样式,palette 控制每组的点颜色,当然也可以用 dict 自行设计每组的颜色

4. contour

We provide 2 numerical variables as input (one for each axis). The function will calculate the kernel density estimate and represent it as a contour plot or density plot. We can use the same argument as for a 1D density plot to custom out chart.

在 1D density plot 中我们使用的是 kdeplot ,这里仍然采用这个函数

参数 shade 控制是否绘制阴影,cmap 控制颜色面板 (color palette),参数 shade_lowest: If True, shade the lowest contour of a bivariate KDE plot

发表评论

电子邮件地址不会被公开。 必填项已用*标注