如何向箱线图中添加上/下围栏+异常值?

如何向箱线图中添加上/下围栏+异常值?

我正在尝试创建一个包含上围栏和下围栏以及异常值的箱线图。我当前的图如下所示(减去所有标签):

仅绘制了 Q1、中位数、Q2、上部和下部晶须的箱线图

\documentclass [12pt, letterpaper] {article}

\usepackage {pgfplots}
\pgfplotsset {compat=1.18}
\usepgfplotslibrary {statistics}

\begin {document}

\begin {center}
\begin {tikzpicture}
\begin {axis} [
    xmin = 15,
    xmax = 35,
    xtick = {15, 20, 25, 30, 35},
    ytick = \empty,
    width = 10cm,
    height = 5cm,
]
\addplot + [
    boxplot prepared = {
        median = 25.5,
        upper quartile = 27,
        lower quartile = 23,
        upper whisker = 31,
        lower whisker = 17,
    },
] coordinates {};
\end {axis}
\end {tikzpicture}
\end {center}

\end {document}

问题是我不知道如何添加上围栏、下围栏和异常值;我需要我的图表看起来更像这样:

箱线图上标有 Q1、中位数、Q1、上须和下须,但这次包括上围栏、下围栏和一些异常值(所有内容都已标记)

答案1

  • 我提供一个非常手动的解决方案因为我的技能还不足以实现更自动化的解决方案。
  • 我手动计算栅栏的位置根据维基百科(截至 2022-01-30),请参阅下面的引用块。
  • 然后我手动画一条虚线。
  • 注意,代码必须在 之前\end{axis}
  • \draw[dashed, blue] (17, 0.6) -- (17, 1.4);如果您想改变颜色,可以使用。
  • 我将其注释掉%ytick = \empty,以便查看 y 位置需要哪些值(0.6 和 1.4)。

也可以通过不同的方法将同一数据集制作成箱线图,如图 3 所示。这一次,须的边界位于1.5 IQR 值.从上面 四分位数(Q3),距离IQR 的 1.5 倍测量出来,并画出一条线到数据集中处于这个距离内的最大观测数据点。同样,距离1.5 乘以 IQR测量结果低于下四分位数(Q1)并绘制一条晶须,指向数据集中位于此距离内的最低观测数据点。晶须边界之外的所有其他观测数据点均被绘制为异常值。

在此处输入图片描述 (来源:https://towardsdatascience.com/understanding-boxplots-5e2df7bcbd51


\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usepgfplotslibrary{statistics}

\begin{document}

\begin{center}
\begin{tikzpicture}
\begin{axis} [
    xmin = 15,
    xmax = 35,
    xtick = {15, 20, 25, 30, 35},
    %ytick = \empty,
    width = 10cm,
    height = 5cm,
]
\addplot+[
    boxplot prepared = {
        median = 25.5,
        upper quartile = 27, % Q3
        lower quartile = 23, % Q1
        upper whisker = 31,
        lower whisker = 17,
    },
] coordinates {};
% https://en.wikipedia.org/wiki/Box_plot
% IQR = 27 - 23 = 4
% 1.5 * IQR = 6
% Lower Fence = Q1 - 1.5 * IQR = 17
% Upper Fence = Q3 + 1.5 * IQR = 33
\draw[dashed] (17, 0.6) -- (17, 1.4);
\draw[dashed] (33, 0.6) -- (33, 1.4);
\end{axis}
\end{tikzpicture}
\end{center}

\end{document}

在此处输入图片描述

相关内容