Python matplotlib 绘制箱型图

这是我参与11月更文挑战的第24天,活动详情查看:2021最后一次更文挑战

复习回顾

matplotlib 是非常强大的模块,包含绘制图形类、制作动画类、图形处理类等,我们前面也已经对pyplot类折线、柱状等常见图的绘制方法的学习,继上一节我们也学习了应用在物理比较多的量场图的绘制方法,往列举几篇期文章如下。

在matplotlib模块中,量场图是常应用在物理学上,而箱型图更多在统计数据上应用。

箱型图.png

本期,我们将学习matplotlib.pyplot.boxplot()相关方法属性的学习,let's go~

1. 箱型图概述

  • 什么是箱型图?

    • 箱型图外观如箱子,又名为盒须图、盒式图或者箱线图。
    • 箱线图是一种用作于显示一组数据分散情况资料的统计图
    • 箱型图能显示一组数据的最大值、最小值、中位数,及上下四分位数六个数据点

    image.png

  • 箱型图应用场景

    • 箱型图由于能显示一组数据分散情况,常用于品质管理
    • 箱型图有利于数据的清洗,能快速知道数据分别情况
    • 箱型图有助于分析一直数据的偏向如分析公司员工收入水平
  • 使用箱型图方法

    import matplotlib.pyplot as plt 
    plt.boxplot(x)
    复制代码

2. 箱型图属性

  • 设置箱型凹凸

    • 关键字:notch
    • 默认值为:False,显示非凹凸型
  • 设置箱型位置

    • 关键字:vert
    • 默认值为:True
    • 当vert设置为True时,绘制垂直框
    • 当vert设置为False时,绘制水平框
  • 设置箱体颜色填充

    • 关键字:patch_artist
    • 默认位置为:False
    • 当patch_artist为False,为Line2D artist
    • 当patch_artist为True,为Patch artist,可填充颜色
  • 设置箱型均值样式

    • 关键字:meanline
    • 默认值为:False
    • 当meanline为False,不显示均值线
    • 当meanline为True,且showmeans=True 均值线会以虚线的形式显示
  • 设置箱型边框显示

    • 设置箱型末端显示关键字:showcaps
    • 设置箱型箱体显示关键字:showbox
    • 默认值为:True

3. 绘制箱型图步骤

  • 导入matplotlib.pyplot类
import matplotlib.pyplot as plt
复制代码
  • 使用numpy库里的arange(),random()等方法准备x数组向量序列
x = np.arange(10,20,5)
复制代码
  • 调用pyplot.boxplot()方法绘制箱型图,显示中位数(红色)和均值线(虚线)
plt.boxplot(x,meanline=True,showmeans=True,labels=["A"])
复制代码
  • 最后调用pyplot.show()渲染打印出箱型图

image.png

4. 小试牛刀

学习以上箱型相关属性和绘制步骤,我们来绘制一组数据箱型图并填充不同的颜色

  • 调用numpy.random.randint()准备5组数据

  • 使用字典形式定义箱型样式boxprops属性

  • 使用字典形式定义箱型均值样式meanprops属性

x = np.random.randint(10,100,size=(5,5))

box = {"linestyle":'--',"linewidth":3,"color":'blue'}

mean = {"marker":'o','markerfacecolor':'pink','markersize':12}

plt.boxplot(x,meanline=True,showmeans=True,labels=["A","B","C","D","E"],boxprops=box,meanprops=mean)

plt.show()
复制代码

image.png

  • 如果箱型要填充颜色,则需要使用patch_artist 属性设置为True
b = plt.boxplot(x,meanline=True,showmeans=True,labels=["A","B","C","D","E"],boxprops=box,meanprops=mean,patch_artist=True)

for c in b["boxes"] :

    c.set(color="lightblue")
复制代码

image.png

总结

本期,我们对matplotlib.pyplot 提供boxplot()绘制箱型图相关属性进行学习。对于箱型图更有利于快速知道一组数据的分布情况。

以上是本期内容,欢迎大佬们点赞评论,下期见~

猜你喜欢

转载自juejin.im/post/7034498266351960100