Matplotlib - 箱线图腿是最小值和最大值

Tom*_*tts 2 python matplotlib python-2.7

我有一个字典,为每个用户 ID 按顺序存储以下值:

  • 最小
  • 下四分位数
  • 中位数
  • 上四分位数
  • 最大限度

绘制箱线图时,我希望在箱线图的腿中使用字典中的最小值和最大值。目前,它将这些绘制为异常值,我希望将它们绘制为箱形图腿的一部分。

我的代码:

for ID in Data:
    #Min
    Data1[ID].append(10)
    #LQ
    Data1[ID].append(20)
    #Median
    Data1[ID].append(30)
    #UQ
    Data1[ID].append(40)
    #Max
    Data1[ID].append(50)
#Plot
fig, ax = plt.subplots()
ax.boxplot(Data1.values())
Run Code Online (Sandbox Code Playgroud)

dat*_*lor 5

whis这些腿被称为胡须,您可以通过在箱线图调用中设置参数来控制它们。在你的情况下,你可能想将其设置为'range'

ax.boxplot(Data1.values(), whis='range')
Run Code Online (Sandbox Code Playgroud)

文档中所述:

whis :浮点数、序列或字符串(默认值 = 1.5) 作为浮点数,确定须线超出第一和第三四分位数的范围。换句话说,当 IQR 是四分位数范围 (Q3-Q1) 时,上须线将延伸到小于 Q3 +whis* IQR 的最后一个数据。同样,下部须线将延伸到大于 Q1 - whis* IQR 的第一个数据。除了胡须之外,数据被视为异常值并绘制为单独的点。将此值设置为不合理的高值以强制胡须显示最小值和最大值。或者,将其设置为百分位数的升序(例如,[5, 95]),以将须线设置在数据的特定百分位数处。最后,whis 可以是字符串“范围”,以强制须线达到数据的最小值和最大值。

请注意,您绘制的不是实际数据的箱线图,而是您提供的汇总统计数据的箱线图。这通常是不同的。如果您想使用汇总统计数据绘制原始数据的箱线图,请查看此示例和 matplotlib 方法bxp