如何使用 Python 和 Plotly 创建不显示异常值的箱线图?
我有一个完整的点列表,用于创建一个包含许多异常值的箱线图,并且范围对于可比较的箱线图来说太大了。
我只是根本不想在箱线图上显示此列表中的异常值。
如果没有,那么我尝试在绘制数据之前从数据中删除异常值。然而,Plotly 提出了一些我没有作为异常值删除的点。
小智 10
来自 Plotly 的安德鲁在这里。
您不能只是不显示数组中的某些数据。因此,您可以设置boxpoints: "all"以获得点的抖动,包括异常值。这将使箱线图保持原样,上面没有异常值。我猜这并不是你真正想要的。
为了防止在数据数组中发现异常值,请设置boxpoints: false
所以在 Python 中,类似这样的东西应该可以工作:
import plotly.plotly as py
from plotly.graph_objs import Box, Figure
fig = Figure()
boxpoints_default = Box(y=[1, 2, 3, 2, 1, 10], name='default')
boxpoints_false = Box(y=[1, 2, 3, 2, 1, 10], boxpoints=False, name='no outliers')
boxpoints_all = Box(y=[1, 2, 3, 2, 1, 10], boxpoints='all', name='jitter boxpoints')
fig['data'].extend([boxpoints_default, boxpoints_false, boxpoints_all])
fig['layout'].update(title='Comparing boxplot "boxpoints" settings')
py.iplot(fig, filename='Stack Overflow 31497537')
Run Code Online (Sandbox Code Playgroud)
这是结果图:
https://plot.ly/~theengineear/4936/comparing-boxplot-boxpoints-settings/
以下是 Plotly 箱线图教程的链接:
http://help.plot.ly/make-a-box-plot/
小智 5
游戏迟到了,但我找到了一个(也许是新的)简单的解决方案:
fig.update_traces(boxpoints=False)
Run Code Online (Sandbox Code Playgroud)
如下所示:https: //plotly.com/python/reference/box/
请注意,我必须删除该selector=dict(type='box)部分,因为它产生了错误。