python箱式图,python绘制箱形图

  python箱式图,python绘制箱形图

  最近接触了kaggle的竞赛实例,实践了一下,觉得受益匪浅。与此同时,我的脑海中出现了一个问题。拿到数据后的第一件事是什么?数据的分析?怎么分析?分析后的数据如何处理?等等一些数据分析工作。其中,条形图、直方图、散点图、曲线图的用处大家可能都心知肚明,但是箱线图呢?(或盒须画)。他的意义是什么?在python中是如何实现的?

  所以今天打开了好心的猎豹老师的书《统计学》,琢磨了一下午,参考了各大网友的博客,所以在这里做个总结。

  箱线图:从字面上看,就是盒子的图,如下图:

  箱形图有五个参数:

  下边缘(Q1)表示最小值;

  下四分位数(Q2),又称“第一四分位数”,等于样本中所有数值从小到大排列后的第25%数;

  中位数(Q3),又称“第二个四分位数”,等于样本中所有数值由小到大排列后的50%数;

  上四分位数(Q4),也称为“第三四分位数”,等于样本中按降序排列的所有值的第75个百分位数;

  上边(Q5)表示最大值。

  第三个四分位数和第一个四分位数之间的差距也称为四分位数间距。

  那为什么要引入方框图呢?这里有一篇博文。箱线图分析。

  1.以反映原始数据的分布情况,如数据的散度和偏斜度。看《统计学》这本书的插图。

  从图中我们可以直观的看到,如果箱线图的中位数和上四分位数之间的距离较窄,那么这个距离内的数据会比较集中,如果箱线图的上(下)边较长,那么对应曲线图的尾部也会较长。

  2.箱线图有检测这组数据中是否有异常值的功能。异常值在哪里?超出了上边缘和下边缘的范围。(这个我也不太了解。总的感觉是和正态分布有一腿。)

  3.可以直观的对比多组数据的情况。还是《统计学》里的例子。

  多组结果的方框图如下:

  从这个图中,我们可以直观地看到以下信息:

  1.所有科目中,英语和西方经济学平均分比较高,统计学和基础会计平均分比较低。(以中位数衡量,总体比较稳定)

  2.英语、市场营销、西方经济学、计算机应用基础、财务管理的分数比较集中,因为箱子短。而经济数学、基础会计、统计学的分数比较分散,可以通过对比考试成绩来确认。

  3.从每个箱线图的中位数和上下四位数的距离也可以看出,英语和营销分数的分布是非常对称的,但是统计呢?大多数数据分布在70到85个点上(中位数到上四分位数)。同样,从成绩单上的数据也可以得到证实。

  4.《计算机应用基础》对应的方框图有一个异常点。我们回去看看成绩单吧。在计算机一栏,有个计算机大牛(但愿是我)考了95分,比第二名多了10分。而其他同学的分数整体在80分左右。

  5。其实我们也可以知道,用平均值来衡量整体情况有时是不合理的,用中值更稳定,因为中值不会受极值影响,而平均值会受极值影响很大。

  那么如何用python画方框图呢?

  我用的是python 3,anaconda平台。主要模块有matplotlib,pandas,numpy。

  #首先导入基本绘图包

  将matplotlib.pyplot作为plt导入

  将numpy作为np导入

  进口熊猫作为pd

  #添加评分表

  plt.style.use(ggplot )

  PLT . RC params[ axes . unicode _ MINUS ]=False

  PLT . RC params[ font . sans-serif ]=[ sim hei ]

  #创建一个空的数据帧。

  df=pd。数据帧()

  #添加抄本,最后显示抄本表单。

  Df[英语]=[76,90,97,71,70,93,86,83,78,85,81]

  Df[经济数学]=[65,95,51,74,78,63,91,82,75,71,55]

  Df[西方经济学]=[93,81,76,88,66,79,83,92,78,86,78]

  Df[计算机应用基础]=[85,78,81,95,70,67,82,72,80,81,77]

  df

  #使用matplotlib绘制箱线图

  plt.boxplot(x=df.values,labels=df.columns,whis=1.5)

  plt.show()

  #用熊猫自己的画图工具更快。

  df.boxplot()

  plt.show()

  好吧!今天的箱线图到此为止。下次拿到数据的时候记得分析数据的分布和数据之间的关系,尤其是通过可视化的手段。

  最后,欢迎讨论批评!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: