使用 pgfplots 在条形图中标记统计显著结果

使用 pgfplots 在条形图中标记统计显著结果

我正在使用 pgfplots 制作条形图,并想在某些条形上方放置星号以显示统计显著性 (p < 0.05)。有什么想法吗?

以下是一个示例图:

\begin{tikzpicture}
\begin{axis}[
    symbolic x coords={(a),(b),(c),(d),(e)},
    xtick=data]
    \addplot[ybar] coordinates {
        ((a),51365) % I'd like to put an asterisk above some of these
        ((b),74531)
        ((c),52862)
        ((d),78999)
        ((e),71825)
    };
\end{axis}
\end{tikzpicture}

答案1

我将nodes near coords结合使用point meta=explicit symbolic以下功能:

\documentclass[border=5mm]{standalone}

\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    symbolic x coords={(a),(b),(c),(d),(e)},
    xtick=data,
    ymin=0,
    point meta=explicit symbolic,
    nodes near coords    
    ]
    \addplot[ybar] table [meta index=2, header=false] {
       (a) 51365 *
       (b) 74531 \\
       (c) 52862 *
       (d) 78999 \\
       (e) 71825 \\
    };
\end{axis}
\end{tikzpicture}

\end{document}

答案2

不确定这是否是一个令人满意的答案,但您可以指定xticklabels={(a),(b),(c),(d),(e)},使用数值作为 x 值,然后将节点放置在您想要突出显示的节点上方:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{pgfplots}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    xticklabels={(a),(b),(c),(d),(e)},
    xtick=data,
    ]
    \addplot[ybar] coordinates {
        (1,51365) % I'd like to put an asterisk above some of these
        (2,74531)
        (3,52862)
        (4,78999)
        (5,71825)
    };
\node [above, red, font=\Large] at (axis cs: 1,51365) {$\ast$};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容