我做了一个 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
对于这种特殊情况,一种快速简便的方法是添加类似
\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}