考虑使用以下代码绘制抛物线:
\begin{scope}[domain=-2:2]
\draw[<->,color=green,line width=1pt] plot[id=func1] function{x*x} node[right]{$t$};
\end{scope}
此代码将标记抛物线的右上端。但是,如果我想将标签放在中间某处,我尝试了以下方法:
\begin{scope}[domain=-2:2]
\draw[<->,color=green,line width=1pt] plot[id=func1] function{x*x} node[pos=0.4]{$t$};
\end{scope}
这会导致标签定位出现意外。有什么好办法可以解决这个问题吗?
答案1
您可以使用decorations.markings
库来放置标签。以下是label
从手册改编的样式示例。它需要两个参数,一个用于路径上的位置,一个用于节点文本。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\begin{scope}[
domain=-2:2,
label/.style 2 args={
postaction={
decorate,
decoration={
markings,
mark=at position #1 with \node [right]{#2};
}
}
}
]
\draw[<->,line width=1pt, label={0.6}{$t$}] plot[id=func1] function{x*x};
\end{scope}
\end{tikzpicture}
\end{document}
您可以使用 PGFplots 的当前版本 (1.5.1) 获得完全相同的输出,它支持以下pos
键:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
domain=-2:2,
hide axis
]
\addplot [no markers,line width=1pt,<->] {x^2} node [pos=0.6,right] {$t$};
\end{axis}
\end{tikzpicture}
\end{document}