【发布时间】:2023-04-10 07:12:01
【问题描述】:
在我们的数据集中,我们有一些绝对巨大的异常值。如果我们绘制(例如在箱线图中)并包含异常值,则轴将被挤压以致于无用。对数缩放没有帮助。但我们想告诉读者存在异常值(并说明有多少,以及在箱线图的哪一侧,正面或负面),最好不要在标题中手动添加文本。有什么好的方法吗?最好在 R、Matplotlib 或 Seaborn 中。
这与例如Ignore outliers in ggplot2 boxplot 不同,因为我不想忽略异常值:我想证明它们存在,但不绘制它们。
示例代码:
# from https://stackoverflow.com/questions/5677885/ignore-outliers-in-ggplot2-boxplot
> library("ggplot")
> df = data.frame(y = c(-100, rnorm(100), 100))
> ggplot(df, aes(y = y)) + geom_boxplot(aes(x = factor(1)))
由于存在异常值,我们看到了一个无用的箱线图。如果我们按照该链接上接受的答案,我们会以一种非常好的方式删除异常值,但现在读者没有意识到有任何异常值。
编辑几个 cmets/answers 问我真正想要什么,但这正是困难所在——我知道我想要一个异常值的自动图形表示(连同主要数据),但我不知道是什么这应该看起来像,正是。我希望社区中有人知道这种情况的一些最佳实践。我不需要帮助编写代码来查找异常值或在绘图中添加文本。
【问题讨论】:
-
你能发布一些示例数据和一些基本代码来可视化问题吗?
-
@ThomasKühn,添加了代码。
-
@Wimpel,不是编辑中描述的重复项。
-
我认为没有既定的惯例。一个想法:将所有异常值画成红色,并在边界附近放置一个红色箭头以表示债券外异常值,可选择将其值放在箭头旁边,用精美的红色打印
标签: r matplotlib seaborn outliers