标记由“绘图函数”生成的函数图

标记由“绘图函数”生成的函数图

可能重复:
如何使用 \draw plot 标记使用 tikz 绘制的路径?

考虑使用以下代码绘制抛物线:

\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}

相关内容