10.绘制统计图形——箱线图

文章目录

箱线图是由一个箱体和一对箱须所组成的统计图形。箱体是由第一四分位数、中位数(第二四分位数)和第三四分位数所组成的。在箱须的末端之外的数值可以理解成离群值,因此,箱须是对一组数据范围的大致直观描述。

1.应用场景——多组定量数据的分布比较

箱线图主要应用在一系列测量或观测数据的比较场景中,例如学校间或班级间测试成绩的比较,球队中的队员体能对比,产品优化后的测试数据比较以及同类产品的各项性能的比较,等等,都可以借助箱线图来完成相关分析或研究任务。因此箱线图的应用范围十分广泛,而且实现起来非常简单。

2.绘制原理

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams["font.sans-serif"]=["FangSong"]
mpl.rcParams["axes.unicode_minus"]=False

testA = np.random.randn(5000)
testB = np.random.randn(5000)

testList = [testA,testB]
labels = ["随机数生成器AlphaRM","随机数生成器BetaRM"]
colors = ["#1b9e77","#d95f02"]

whis = 1.6
width = 0.35

bplot = plt.boxplot(testList,
                    whis=whis,
                    widths=width,
                    sym="o",
                    labels=labels,
                    patch_artist=True)

for patch,color in zip(bplot["boxes"],colors):
    patch.set_facecolor(color)

plt.ylabel("随机数值")
plt.title("生成器抗干扰能力的稳定性比较")

plt.grid(axis="y",ls=":",lw=1,color="gray",alpha=0.4)

plt.show()

10.绘制统计图形——箱线图
bplot = plt.boxplot(testList,
                    whis=whis,
                    widths=width,
                    sym="o",
                    labels=labels,
                    patch_artist=True)
testList:绘制箱线图的输入数据
whis:四分位间距的倍数,用来确定箱须包含数据的范围的大小
widths:设置箱体的宽度
sym:离群值的标记样式
labels:绘制每一个数据集的刻度标签
patch_artist:是否给箱体添加颜色
mpl.rcParams["axes.unicode_minus"]=False语句放弃unicode_minus的使用,这样图形中的刻度标签值是
负数的情况就可以合理的解决,即负数可以正确的显示。
将需要比较的数据放在列表testList中,同时作为函数boxplot()的参数进行输入。将关键字参数whis,widths,
sym和labels传入函数boxplot里,完成箱线图的基本绘制工作。接下来对箱线图的返回值进行操作,
这个返回值是一个字典数据结构,由于需要对箱体添加颜色,所以使用键"boxes"来调出键值"bplot[boxes]"。
最后使用内置函数zip()生成元组列表zip(bplot["boxes",colors]),使用for循环对每个箱体颜色进行颜色填充,从而完成整个箱线图的绘制工作。如果将关键字参数notch的参数值设置为"True",同时其它语句保持不变,那么箱体就变成有"V"型凹痕的箱体了。

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams["font.sans-serif"]=["FangSong"]
mpl.rcParams["axes.unicode_minus"]=False

testA = np.random.randn(5000)
testB = np.random.randn(5000)

testList = [testA,testB]
labels = ["随机数生成器AlphaRM","随机数生成器BetaRM"]
colors = ["#1b9e77","#d95f02"]

whis = 1.6
width = 0.35

bplot = plt.boxplot(testList,
                    whis=whis,
                    widths=width,
                    sym="o",
                    labels=labels,
                    patch_artist=True,
                    notch=True)

for patch,color in zip(bplot["boxes"],colors):
    patch.set_facecolor(color)

plt.ylabel("随机数值")
plt.title("生成器抗干扰能力的稳定性比较")

plt.grid(axis="y",ls=":",lw=1,color="gray",alpha=0.4)

plt.show()

10.绘制统计图形——箱线图

3.延伸——箱体、箱须、离群值的含义和计算方法

箱线图的组成部分有:箱体、箱须和离群值,其中,箱体主要由第一四分位数、中位数和第三四分为数组成,箱须又分为上箱须和下箱须。下面,介绍一下这些组成部分的含义和计算方法。

10.绘制统计图形——箱线图
其中Q1和Q3分别是第一四分位数和第三四分位数,whis是关键字参数whis的参数值,IQR(IQR是Inter-Quartile Range的缩写)是四分位差,计算方法是IQR=Q3-Q1。离群值Outlier的判断标准是
10.绘制统计图形——箱线图
其中,value是数据集Data中的数据点。

; 4.水平方向的箱线图

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams["font.sans-serif"]=["FangSong"]
mpl.rcParams["axes.unicode_minus"]=False

x = np.random.randn(1000)

plt.boxplot(x,vert=False)

plt.xlabel("随机数值")
plt.yticks([1],["随机数生成器AlphaRM"],rotation=90)
plt.title("随机数生成器抗干扰能力的稳定性")

plt.grid(axis="x",ls=":",lw=1,color="gray",alpha=0.4)

plt.show()

10.绘制统计图形——箱线图

5.不绘制离群值的水平放置的箱线图

大多数情况下,我们都是绘制包含离群值的箱线图。但是很多时候,我们只需要绘制数据集的分布结构,也就是说只需要标记出箱须的长度、上四分位数、下四分位数、中位数的位置,即可满足描绘数据集的分布特征目标。离散值不是重点要考虑的描述统计对象。

import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np

mpl.rcParams["font.sans-serif"]=["FangSong"]
mpl.rcParams["axes.unicode_minus"]=False

x = np.random.randn(1000)

plt.boxplot(x,vert=False,showfliers=False)

plt.xlabel("随机数值")
plt.yticks([1],["随机数生成器AlphaRM"],rotation=90)
plt.title("随机数生成器抗干扰能力的稳定性")

plt.grid(axis="x",ls=":",lw=1,color="gray",alpha=0.4)

plt.show()

10.绘制统计图形——箱线图

Original: https://blog.csdn.net/qq_34562355/article/details/124822905
Author: 御坂御坂001
Title: 10.绘制统计图形——箱线图

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/639970/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球