我有一系列的方块图,每个都有不同的范围。我试着通过确定每个独立序列的最大值和最小值来设置ylim。但是,在许多情况下,最小值是一个异常值,因此图被压缩。我怎样才能选择相同的限制所使用的'胡须'的情节(加上一个小幅度)?
我现在正在做:
[In]
ax = df['feature'].boxplot()
ymax = max(df['feature']
ymin = min(df['feature']
ax.set_ylim([ymax,ymin])
我想让ymax,ymin成为这个盒子里的胡须。
Tags:
作为@unutbu建议的替代方法,您可以避免绘制异常值,然后使用
ax.margins(y=0)
(或一些小的eps
)将限制范围扩展到晶须的范围。例如:
如果你想在最大的“胡须”周围留点空间,可以使用
ax.margins(0.05)
来添加5%的范围而不是0%的范围:您可以检查由
df.boxplot()
返回的晶须(maplotlib.lines.Line2D
对象)。例如,如果你打电话给然后
bp['whiskers']
将是Line2D
对象的列表。您可以使用然后使用
yval.min()
和yval.max()
来确定所需的y-limits
。例如
收益率
可以在boxplot中设置
showfliers=False
,这样就不会绘制异常值。由于您特别询问了胡须,this is how they are calculated,默认值为1.5:
您可以执行相同的计算,并将
ylim
设置为该值。相关问题 更多 >
编程相关推荐