我正在使用plt.boxplot()命令制作标准的Matplotlib-boxplots。 创建boxplot的代码行是:
bp = plt.boxplot(data, whis=[5, 95], showfliers=True)
因为我的数据分布很广,所以我得到的传单很多都超出了规定的范围。为了获得更清晰的出版物质量图,我只想在数据的最大值和最小值处显示单个传单,而不是所有传单。这可能吗?我在文档中看不到任何内置选项来执行此操作。
(我可以将胡须的范围设置为max/min,但这不是我想要的。我想把胡须保持在第5百分位和第95百分位)。
下面是我正在研究的数字。注意传单的密度。
结果图,仅显示最大和最小传单:![enter image description here](https://i.stack.imgur.com/w2Bpf.png)
plt.boxplot()
返回一个字典,其中键fliers
包含作为line2d对象的上下传单。您可以在这样绘制之前操纵它们:仅在matplotlib上>;=1.4.0
在旧版本上
如果您使用的是旧版本的matplotlib,则每个boxplot的fliers都用两行而不是一行表示。因此,循环看起来像这样:
还要注意,
showfliers
参数在matplotlib<;1.4x中不存在,whisk
参数不接受列表。当然(对于简单的应用程序),您可以在没有传单的情况下绘制boxplot,并将max和min点添加到绘图中:
其中
[1, 1]
是点的x位置。相关问题 更多 >
编程相关推荐