📅  最后修改于: 2023-12-03 15:11:33.670000             🧑  作者: Mango
箱线图(box plot)是一种常见的统计图形,主要用于反映数据的离散程度、对称情况、分布情况、异常值等信息。在 Python 中,我们可以使用 matplotlib
库绘制箱线图。
首先,我们需要准备一组数据,用于绘制箱线图。以下是一个示例数据:
import numpy as np
np.random.seed(123)
data = np.random.normal(0, 1, 100)
这组数据是从均值为 0,标准差为 1 的正态分布中随机抽取的 100 个数。
接下来,我们可以使用 matplotlib
中的 boxplot
函数来绘制箱线图。以下是一个简单的例子:
import matplotlib.pyplot as plt
plt.boxplot(data)
plt.show()
这段代码将会绘制出一个简单的箱线图。如果你运行该代码,你会得到以下结果:
从上图可以看出,箱线图被分为 5 个部分:
箱线图的箱体用于表示数据的中间 50%。箱体的顶部和底部分别表示数据的 75 分位数和 25 分位数,中间的线表示数据的中位数。箱线图之上和之下的线,表示的是数据的最大值和最小值,但需要注意的是,如果数据中存在异常值,则其不包括在最大值和最小值之内。
我们可以通过 boxplot
函数的一些参数来自定义箱线图,以下是一个简单的例子:
import matplotlib.pyplot as plt
plt.boxplot(data,
notch=True, # 是否显示缺口
sym='+', # 异常值样式
vert=False, # 是否是垂直箱线图
whis=1.5, # 箱体上下线的长度(whis*四分位差)
widths=0.5, # 箱体宽度
patch_artist=True, # 是否用彩色填充箱体
boxprops=dict(facecolor='pink', color='black'), # 箱体外观设置
whiskerprops=dict(color='blue'), # 最大值和最小值的外观设置
flierprops=dict(color='red', markeredgecolor='red'), # 异常值的外观设置
medianprops=dict(color='green'), # 中位数的外观设置
labels=[''], # x轴标签(为空,即无标签)
showmeans=True, # 是否显示均值
meanprops=dict(marker='o',
markerfacecolor='white',
markeredgecolor='black',
markersize=8,
alpha=0.7) # 均值点的样式
)
plt.title('My Boxplot')
plt.show()
这段代码将会绘制出一个自定义的箱线图。如果你运行该代码,你会得到以下结果:
从上图可以看出,我们添加了以下自定义设置:
notch=True
:显示缺口。sym='+'
:将异常值显示为加号。vert=False
:绘制水平箱线图。whis=1.5
:箱体上下线的长度为四分位差的 1.5 倍。widths=0.5
:箱体宽度为 0.5。patch_artist=True
:使用彩色填充箱体。boxprops=dict(facecolor='pink', color='black')
:箱体外观使用粉色填充,边框使用黑色。whiskerprops=dict(color='blue')
:最大值和最小值的外观使用蓝色。flierprops=dict(color='red', markeredgecolor='red')
:异常值使用红色,默认使用空心圆点的外观,即 marker='o'
。medianprops=dict(color='green')
:中位数的外观使用绿色。labels=['']
:x轴无标签。showmeans=True
:显示均值。meanprops=dict(marker='o', markerfacecolor='white', markeredgecolor='black', markersize=8, alpha=0.7)
:均值点的样式为白色实心圆点,大小为 8,边缘颜色为黑色,透明度为 0.7。以上自定义设置只是箱线图的一部分,你可以根据需要进行调整。
以上就是箱线图在 Python 中的介绍和使用方法。希望对你有所帮助!