箱线图的单独计算和绘图#

为给定的数据集绘制boxplot,包括两个主要操作,也可以单独使用

  1. 计算箱线图统计信息:matplotlib.cbook.boxplot_stats

  2. 绘制箱线图:matplotlib.axes.Axes.bxp

因此,ax.boxplot(data) 等价于

boxplotbxp之间的所有样式关键字参数都相同,并且它们从boxplot传递到bxp。但是,boxplot的*tick_labels*参数转换为boxplot_stats中的通用*labels*参数,因为标签是与数据相关的,并且附加到返回的每个数据集字典。

以下代码演示了两种方法之间的等效性。

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cbook

np.random.seed(19680801)
data = np.random.randn(20, 3)

fig, (ax1, ax2) = plt.subplots(1, 2)

# single boxplot call
ax1.boxplot(data, tick_labels=['A', 'B', 'C'],
            patch_artist=True, boxprops={'facecolor': 'bisque'})

# separate calculation of statistics and plotting
stats = cbook.boxplot_stats(data, labels=['A', 'B', 'C'])
ax2.bxp(stats, patch_artist=True, boxprops={'facecolor': 'bisque'})
bxp

使用单独的函数可以预先计算统计信息,如果您需要明确地用于其他目的,或重用多个图的统计信息。

相反,如果您已经有统计参数,您也可以直接使用bxp函数

fig, ax = plt.subplots()

stats = [
    dict(med=0, q1=-1, q3=1, whislo=-2, whishi=2, fliers=[-4, -3, 3, 4], label='A'),
    dict(med=0, q1=-2, q3=2, whislo=-3, whishi=3, fliers=[], label='B'),
    dict(med=0, q1=-3, q3=3, whislo=-4, whishi=4, fliers=[], label='C'),
]

ax.bxp(stats, patch_artist=True, boxprops={'facecolor': 'bisque'})

plt.show()
bxp

标签:绘图类型:特殊 领域:统计

参考

此示例中显示了以下函数、方法、类和模块的使用

图库由 Sphinx-Gallery 生成