Matplotlib-箱线图的最大值和最小值

时间:2018-10-09 13:41:36

标签: python python-2.7 matplotlib

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

  • Min
  • 低四分位数
  • 中位数
  • 上四分位数
  • 最大

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

我的代码:

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())

1 个答案:

答案 0 :(得分:1)

这些腿称为晶须,您可以通过在boxplot调用中设置参数whis来控制它们。您可能需要将其设置为'range'

ax.boxplot(Data1.values(), whis='range')

documentation中所述:

  

whis:浮点数,序列或字符串(默认= 1.5)   作为浮点,确定晶须到达第一和第三四分位数以外的范围。换句话说,在IQR是四分位间距(Q3-Q1)的情况下,上晶须将延伸到小于Q3 + whis * IQR的最后数据。类似地,下晶须将延伸到大于Q1-whis * IQR的第一基准。除晶须外,数据被认为是离群值,并绘制为单个点。将此值设置为不合理的高值,以强制晶须显示最小值和最大值。或者,将其设置为升序百分位数(例如[5,95]),以将晶须设置为数据的特定百分位数。最后,whis可以是字符串“ range”,以将晶须强制为数据的最小值和最大值。

请注意,您并未绘制实际数据的箱线图,而是绘制了提供的摘要统计信息的箱线图。这通常是不同的。如果要使用汇总统计信息绘制原始数据的箱线图,请查看此example和matplotlib方法bxp