matplotlib boxplot,中间有5%的额外胡须

时间:2014-03-21 16:23:14

标签: python matplotlib

我使用http://matplotlib.org/examples/pylab_examples/boxplot_demo2.html示例使用whis=1.5

绘制多个框

如何从中位数+-5%添加第二组胡须。

1 个答案:

答案 0 :(得分:2)

目前还没有简单的方法。如果您愿意,可以单独拨打plot

在版本1.4中,您可以说:

fig, ax = plt.subplots()
ax.boxplot(data, ...) # normal boxplots
ax.boxplot(data, whis=[45,55], showboxes=False, showmedians=False, showfliers=False)

第二个命令只会绘制第45和第55百分位的胡须。

如果不是您的意思,您就可以使用matplotlib.cbook.boxplot_stats(data)获取一个dictonaries列表。您可以修改这些词典的胡须元素,并将最终版本提供给ax.bxp

fig, ax = plt.subplots()
stats = matplotlib.cbook.boxplot_stats(data)
for s in stats:
    s['whislo'] = s['med'] * 0.95
    s['whishi'] = s['med'] * 1.05

ax.bxp(stats)

注意:在这两种情况下,仍然会分别从下部和上部晶须的第一和第三四分位数开始绘制晶须。换句话说,他们将面对向内