【问题标题】:Matplotlib - boxplot legs are min and max valuesMatplotlib - 箱线图腿是最小值和最大值
【发布时间】:2018-10-09 13:41:35
【问题描述】:

我有一个字典,为每个用户 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())

【问题讨论】:

    标签: python python-2.7 matplotlib


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      相关资源
      最近更新 更多