pgfplots:向图形中添加附加线条

pgfplots:向图形中添加附加线条

我做了一个 4 项检验的方差分析。结果图如下所示,原始代码来自:TikZ:用名称替换 x 轴上的值(标签)

\documentclass[12pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}

\begin{document}
\begin{tikzpicture}
    \begin{axis}
        [
        ,width=7cm
        ,xlabel=Test
        ,ylabel=Mean
        ,xtick=data,
       %,xtick={0,1,...,3}
        ,xticklabels={Test A,Test B,Test C,Test D}
        ]
        \addplot+[sharp plot] coordinates
        {(0,18.26) (1,21.47) (2,24.58) (3,24.95)};
    \end{axis}
\end{tikzpicture}
\end{document}

问题:我想添加额外的行来指示成对比较的结果,如下例所示:

重复测量并进行成对比较

  1. 我可以手动安排进一步的线路 - 有没有更优雅的方式?

  2. 如何在线附近添加*****

  3. 如何获得以箭头为结尾的虚线?

答案1

对于这种特殊情况,一种快速简便的方法是添加类似

\draw [dotted,->] ([xshift=0.3cm]axis cs:0,18.26) -- ([yshift=-0.3cm]axis cs:2,24.58) node[near end,right,font=\tiny]{***};
\draw [dotted,->,shorten >=0.3cm] (axis cs:0.2,18.26) -- (axis cs:3,24.95) node[near end,right,font=\tiny]{**};   

就在之前\end{axis}

  • dotted,->指定该线应为虚线并具有默认箭头。

  • 坐标如表示应使用 的axis cs:0,18.26坐标系。当放置在 坐标的起始位置时(如 ),它将坐标向右移动 0.3cm。对于 也类似。axis[xshift=0.3cm]([xshift=0.3cm]axis cs:0,18.26)yshift

  • node[near end,right,font=\tiny]{**}将节点放置在行的右侧,靠近末尾,并设置\tiny字体大小。

  • shorten >=0.3cm在线末端切断 0.3cm。

请注意,所有使用的坐标都与图本身的坐标相同,因此线条是相对于它们绘制的。

在此处输入图片描述

\documentclass[12pt,border=4mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.10}

\begin{document}
\begin{tikzpicture}
    \begin{axis}
        [
        ,width=7cm
        ,xlabel=Test
        ,ylabel=Mean
        ,xtick=data,
       %,xtick={0,1,...,3}
        ,xticklabels={Test A,Test B,Test C,Test D}
        ]
        \addplot+[sharp plot] coordinates
        {(0,18.26) (1,21.47) (2,24.58) (3,24.95)};

        \draw [dotted,->] ([xshift=0.3cm]axis cs:0,18.26) -- ([yshift=-0.3cm]axis cs:2,24.58) node[near end,right,font=\tiny]{***};
        \draw [dotted,->,shorten >=0.3cm] (axis cs:0.2,18.26) -- (axis cs:3,24.95) node[near end,right,font=\tiny]{**};        
    \end{axis}
\end{tikzpicture}
\end{document}

相关内容