下面是Python绘制箱型图的完整攻略:
一、简介
箱型图(Box plot)是一种用来展示一个数据集分散情况的统计图表。它主要用来展示多个数据集之间的比较,其中包括了最大值、最小值、中位数和四分位数(上四分位数和下四分位数)。箱型图的绘制依赖于matplotlib
库。
二、箱型图的使用
1. 导入库
绘制箱型图前,需要导入numpy
和matplotlib
库。对于matplotlib
,需要同时导入pyplot
模块和rcParams
设置。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rcParams
2. 创建数据
下面我们需要创建一个数据集来绘制箱型图。这里为了方便,使用了一个随机生成的数组:
np.random.seed(10)
data = np.random.normal(size=(100,3))
labels = ['A', 'B', 'C']
以上代码中,我们生成一个大小为$(100,3)$的数组,并定义了三个标签。
3. 绘制箱型图
(1)使用pyplot绘图
绘制箱型图的方法非常简单,使用pyplot中的boxplot()
函数即可。我们需要提供绘制的数据(可以是单个数组,也可以是多个数组构成的列表)和一些可选的配置参数。
fig = plt.figure(figsize=(7,4))
ax = fig.add_subplot(111)
bp = ax.boxplot(data, width=0.6, patch_artist=True, labels=labels, notch=True)
ax.set_title('Box plot example')
ax.set_ylabel('Value')
for element in ['boxes', 'whiskers', 'means', 'medians', 'caps']:
plt.setp(bp[element], color='gray', linewidth=1.5)
plt.show()
(2)使用Axes对象绘图
另一种常见的方法是使用Axes
对象的boxplot()
方法绘图。这种方法可以让我们更加精细地控制箱型图的各种元素。
fig = plt.figure(figsize=(7,4))
ax = fig.add_subplot(111)
boxprops = dict(linestyle='-', linewidth=1.5, color='gray')
medianprops = dict(linestyle='-', linewidth=1.5, color='red')
bp = ax.boxplot(data, widths=0.6, patch_artist=True, labels=labels, notch=True,
boxprops=boxprops, medianprops=medianprops)
ax.set_title('Box plot example')
ax.set_ylabel('Value')
plt.show()
在使用Axes.boxplot()
方法时,我们可以通过传递配置参数来控制箱型图的细节。例如,在以上代码中,我们增加了boxprops
和medianprops
参数来分别设置箱体和中位线的属性。
4. 效果演示
下面分别是使用pyplot和Axes对象绘制的箱型图结果:
np.random.seed(10)
data = np.random.normal(size=(100,3))
labels = ['A', 'B', 'C']
# 使用pyplot绘制的箱型图
fig = plt.figure(figsize=(7,4))
ax = fig.add_subplot(111)
bp = ax.boxplot(data, width=0.6, patch_artist=True, labels=labels, notch=True)
ax.set_title('Box plot example')
ax.set_ylabel('Value')
for element in ['boxes', 'whiskers', 'means', 'medians', 'caps']:
plt.setp(bp[element], color='gray', linewidth=1.5)
plt.show()
# 使用Axes对象绘制的箱型图
fig = plt.figure(figsize=(7,4))
ax = fig.add_subplot(111)
boxprops = dict(linestyle='-', linewidth=1.5, color='gray')
medianprops = dict(linestyle='-', linewidth=1.5, color='red')
bp = ax.boxplot(data, widths=0.6, patch_artist=True, labels=labels, notch=True,
boxprops=boxprops, medianprops=medianprops)
ax.set_title('Box plot example')
ax.set_ylabel('Value')
plt.show()
三、总结
本文介绍了Python绘制箱型图的具体方法,包括数据的导入、pyplot和Axes对象的绘图方法、以及细化箱型图的其他属性。通过本文的介绍,你可以轻松地绘制出具有专业水准的箱型图。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python绘制箱型图 - Python技术站