箱图相信大家都认识,可是下面这个统计图大家认识吗?
看长相好像和老实巴交的箱图有点关系,不过怎么那么多箱体?
猜对了,这个东西确实是箱图的进一步发展,可以被叫做增强箱图。。。等等,增强箱图?那么箱图有什么问题,还需要来”增强“这么一家伙?
好吧,为了说明这个问题,我们还是先画出标准的箱图来看看,随手用python里面的seaborn模块画一个:
sns.boxplot(ccss.time, ccss.index1)
按照时间分为四组,每组分别用百分位数指标体系显示了P25、P50、P75,以及可能的离群值。不愧是箱图,简单,明了。
可是,大家有没有想过,无论样本量多大,箱图永远都只显示这点信息,那么对于大样本量是不是有点太吝啬了呢?
所以,增强箱图就被人提出来了!
增强箱图是在中位数两侧,除了绘制原有的四分位数以外,还继续向外绘制8分位数、16分位数、32分位数。。。以此类推,直至达到停止绘制的标准为止。
-
各箱体的宽度/颜色深度对应了相应的样本数量。
-
两侧离群值的比例则由用户自行设定。
这个东西最早在Heike Hofmann于2011年提出的时候被称为Letter-value plots(这都什么破名字),连文章名字都是”Letter-value plots: Boxplots for large data“,对应的绘图命令就叫lvplot,搞得人还以为这统计图会和驴牌有什么关系呢,这名字也太掉价了!这样下去和清华北大的文章能有什么区别?!
好在,现在在最新的seaborn 0.9.0版中,相应的函数被更名为seaborn.boxenplot(),总算是有个像样子的名字了。。。
增强箱图在python环境的seabron包里面绘制非常简单,就一句:
sns.boxenplot(ccss.time, ccss.index1)
当然,该命令还是有其它参数可以修改的,不过以我干活一向喜欢偷懒的经验来看,基本上也没什么需要改的。。。
啥?你问我为啥那么懒?因为聪明人都很懒嘛。。。
除了增强箱图外,Python环境下的matplotlib+seaborn组合还可以绘制各种酷炫的数据可视化图形,大家有兴趣的话,请参考Python数据分析系列课程之《玩转数据可视化》。