我有一个字典,该字典按每个用户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())
答案 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
。