在箱线图中未检测到异常值

时间:2020-04-02 09:13:29

标签: python matplotlib boxplot

我想绘制数据框的箱形图(请参见下面的示例代码)。我想知道的是:如何禁用离群值检测?我不想删除它们,我只想要一个图表,通过标记0%,25%,50%和75%的数据点来可视化数据,而无需考虑任何异常值标准。

我如何修改我的代码才能实现这一目标?我可以以异常方式更改异常检测标准吗?

我将非常感谢您的帮助,如果对此已经存在其他威胁(我没有找到),我将很高兴获得与它的链接。

非常感谢! 乔丹

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

np.random.seed(1234)
df = pd.DataFrame(np.random.randn(10, 4),
                  columns=['Col1', 'Col2', 'Col3', 'Col4'])

plt.figure()
plt.boxplot(df.values)
plt.show()

编辑:

The outlier on the top right side is marked as an outlier

我想在绘制晶须时包括这个异常值,而不仅仅是不显示它。

2 个答案:

答案 0 :(得分:1)

如果您在绘图函数中添加sym='',我想您会得到您想要的:

boxplot

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

np.random.seed(1234)
df = pd.DataFrame(np.random.randn(10, 4),
                  columns=['Col1', 'Col2', 'Col3', 'Col4'])

df.boxplot(sym='')

答案 1 :(得分:0)

您正在寻找whis参数。

对于documentation

whis :浮点数,序列或字符串(默认= 1.5)

作为浮点数,确定 晶须超出第一和第三四分位数。换一种说法, 如果IQR是四分位间距(Q3-Q1),则上晶须将 扩展到小于Q3 + Whs IQR的最后一个数据。同样,较低的 晶须将延伸到大于Q1的第一个基准-whis IQR。 除晶须外,数据被认为是离群值,并绘制为 个别点。将此值设置为不合理的高值,以强制 晶须显示最小值和最大值。或者,将此设置为 百分位数的上升顺序(例如[5,95])以设置晶须 在数据的特定百分位数处。最后,whis可以是字符串 “范围”将晶须强制为数据的最小值和最大值。

像这样添加它:

df.boxplot(whis=99)