6

如何使用 Python 和 Plotly 创建一个不显示异常值的箱线图?

我有一个完整的点列表,用于创建具有许多异常值的箱线图,并且范围对于可比较的箱线图来说太大了。

我只是不想在箱线图上显示此列表中的异常值。

  1. 有没有办法在箱线图中不显示异常值?

如果没有,那么我尝试在绘制数据之前从数据中删除异常值。然而,Plotly 提出了一些我没有作为异常值删除的点。

  1. 有没有办法创建一个没有任何元素被认为是异常值的箱线图?
4

2 回答 2

3

来自 Plotly 的 Andrew。

  1. 您不能只是显示数组中的某些数据。因此,您可以设置boxpoints: "all"获取点的抖动,包括异常值。这将使箱线图保持原样,而不会出现异常值。我猜这不是你想要的。

  2. 为了防止在数据数组中发现异常值,设置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')

这是结果图:

https://plot.ly/~theengineear/4936/comparing-boxplot-boxpoints-settings/

以下是使用 Plotly 的一般箱线图教程的链接:

http://help.plot.ly/make-a-box-plot/

于 2015-07-20T05:38:05.363 回答
1

游戏迟到了,但我找到了一个(也许是新的)简单的解决方案:

fig.update_traces(boxpoints=False) 

如此处所示:https ://plotly.com/python/reference/box/

请注意,我必须删除该selector=dict(type='box)部分,因为它创建了一个错误。

于 2021-08-27T15:06:29.850 回答