pgfplots:xlabel/ylabel 中的 tikz-code

pgfplots:xlabel/ylabel 中的 tikz-code

在图表中,箭头应指示值增加的方向。DIN461 建议将这些箭头放在 xlabel / ylabel 旁边,我发现这是一个不错的解决方案。为了实现这一点,我尝试了:

\documentclass[tikz]{standalone}
\usepackage{pgfplots}
\newlength{\txtht}
\newcommand{\diagramarrow}[1]{ %
    \settoheight{\txtht}{#1}%
    \tikz[baseline] { \draw[->,>=latex,inner sep=0pt,outer sep=0pt] (0,0.5\txtht)--++(1.75em,0);}  %
}

\begin{document}
\begin{tikzpicture}
\begin{axis}[ %
    xlabel={Voltage \diagramarrow{X} },
    ylabel={Current \diagramarrow{X} }, 
    ]
\addplot[] coordinates {(0,1) (1,1) (3,10)};
\coordinate (arrowtipX) at (xticklabel cs:0.65,11pt) {};
\end{axis}
\node[red,align=right] at (arrowtipX) {\diagramarrow{X}};
\end{tikzpicture}
\end{document}

结果图

但是,结果箭头(黑色)是歪斜的。预期的行为是红色箭头,它是使用 xticklabel cs 手动放置的。

我的问题是:

为什么黑色箭头甚至不与轴平行,而它们的定义是--++(1.75em,0)?

我怎样才能在实际标签文本的一半高度实现 tikz-arrow(像 \rightarrow 这样的箭头真的很丑......)?

xlabel/ylabel 节点的名称是什么?如果我知道这些名称,我可以将箭头放在轴环境之外(如红色箭头),例如 (xlabel.east)。

谢谢

澳大利亚商业信息局

答案1

像这样:

在此处输入图片描述

\documentclass[margin=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}

\newcommand{\diagramarrow}{\raisebox{0.5ex}{\tikz\draw[-latex] (0,0) -- (1.75em,0);}}

\begin{document}
\begin{tikzpicture}
\begin{axis}[ %
    xlabel={Voltage \diagramarrow},
    ylabel={Current \diagramarrow},
    no marks
    ]
\addplot    coordinates {(0,1) (1,1) (3,10)};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容