首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >纯正盒图关闭孤立点检测

问纯正盒图关闭孤立点检测
EN

Stack Overflow用户
提问于 2019-08-06 10:40:48
回答 1查看 2.3K关注 0票数 2

在Plotly (Python)中,方框图在默认情况下检测异常值,如果它决定是异常值,则不会将晶须扩展到异常值。然而,我知道我的数据点都不应该被视为异常值。是否有可能关闭方框图中的异常值检测,并将整个数据集作为异常值处理?

顺便说一句,我仍然想显示方框图旁边的所有点,所以我不想使用选项boxpoints=False来强制框图包含所有点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-05 10:49:47

似乎目前唯一的方法是使用多个痕迹,并将它们调整到与下面的情节和片段相同的位置。如果你想要一些细节,看看最后的片段和情节。

在下面的代码段中,我使用go.Box(x=x0)对两个具有相同数据但对标记和行设置不同的跟踪来实现这一点:

情节:

​

​

代码:

代码语言:javascript
复制
# imports
import plotly
from plotly import tools
import pandas as pd
import numpy as np
import plotly.graph_objs as go

# setup
np.random.seed(123)

# data
y0 = np.random.randn(50)-1
x0 = y0
x0 = [0 for y in y0]

# include an outlier
y0[-1] = 4

# traces
trace0 = go.Box(x=x0,
                y=y0, boxpoints = False, pointpos = 0,
                marker = dict(color = 'rgb(66, 167, 244)'),
)

trace1 = go.Box(x=x0,
                y=y0, boxpoints = 'all', pointpos = 0,
                marker = dict(color = 'rgb(66, 66, 244)'),
                line = dict(color = 'rgba(0,0,0,0)'),
                fillcolor = 'rgba(0,0,0,0)'
)

data=[trace0, trace1]

# figure
fig = go.Figure(data)
fig.show()

关于默认行为的详细信息:

如果未指定Boxpoints,则行将不包括异常值:

绘图:默认值

​

​

代码:

代码语言:javascript
复制
# imports
import plotly
from plotly import tools
import pandas as pd
import numpy as np
import plotly.graph_objs as go

# setup
np.random.seed(123)

# data
y0 = np.random.randn(50)-1
y0[-1] = 4

# traces
trace0 = go.Box(y=y0, pointpos = 0,
                marker = dict(color = 'rgb(66, 167, 244)'),

)

# figure
fig = go.Figure(trace0)
fig.show()

使行包含异常值的唯一方法是通过设置boxpoints = False删除所有框点。

情节:

​

​

代码:

代码语言:javascript
复制
# imports
import plotly
from plotly import tools
import pandas as pd
import numpy as np
import plotly.graph_objs as go

# setup
np.random.seed(123)

# data
y0 = np.random.randn(50)-1
y0[-1] = 4

# traces
trace0 = go.Box(y=y0, pointpos = 0,
                marker = dict(color = 'rgb(66, 167, 244)'),
                boxpoints = False
)

# figure
fig = go.Figure(trace0)
fig.show()

当然,这不是你想要做的。

希望这能帮上忙。如果没有,那就毫不犹豫地让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57374205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档