![pgfplots:xlabel/ylabel 中的 tikz-code](https://linux22.com/image/367738/pgfplots%EF%BC%9Axlabel%2Fylabel%20%E4%B8%AD%E7%9A%84%20tikz-code.png)
在图表中,箭头应指示值增加的方向。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}