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

时间:2015-07-19 02:50:36

标签: python plotly

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

我有一个完整的点列表,我用它来创建一个包含许多异常值的箱形图,其范围对于类似的箱形图来说太大了。

我根本不想在方块图上显示此列表中的异常值。

  1. 有没有办法在框图中不显示异常值?
  2. 如果没有,那么我尝试在绘制之前从数据中删除异常值。然而,然后Plotly将一些我没有删除的点作为异常值。

    1. 有没有办法创建一个箱形图,其中没有一个元素被视为异常值?

1 个答案:

答案 0 :(得分:0)

来自Plotly的Andrew。

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

  2. 为防止在数据阵列中发现异常值,请设置boxpoints: false

  3. 所以在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/