我无法修复这个简单的图。我想我错过了什么,但我无法指出是什么!你能告诉我为什么(a)
不在midway
红线处吗?
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[domain=0:4]
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red] plot (\x,\x) node [midway,inner sep=0] (a) {} node[right] {$f(x) =x$};
\draw[->] (4,1) node[right] {this is not required (a)} -- (a) ;
\node[circle,fill,label={above left:this should be (a)}] at (2,2) {};
\end{tikzpicture}
\end{document}
这是tikz-抛物线节点位置?
答案1
不幸的是,midway
(或pos=0.5
) 语法不适用于 TikZ 图(如果您使用 pgfplots 绘制图,它会起作用)。
但是,您可以使用decorations.markings
库来定义路径上的坐标。以下样式mark position=<pos>(<coordinate name>)
将指定名称的坐标放置在路径上指定距离处。如果您需要路径上的多个位置,可以多次调用此样式。
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\tikzset{
mark position/.style args={#1(#2)}{
postaction={
decorate,
decoration={
markings,
mark=at position #1 with \coordinate (#2);
}
}
}
}
\begin{tikzpicture}[domain=0:4]
\draw[very thin,color=gray] (-0.1,-1.1) grid (3.9,3.9);
\draw[->] (-0.2,0) -- (4.2,0) node[right] {$x$};
\draw[->] (0,-1.2) -- (0,4.2) node[above] {$f(x)$};
\draw[color=red, mark position=0.5(a)] plot (\x,\x) node[right] {$f(x) =x$};
\node at (a) [left] {this is (a)};
\end{tikzpicture}
\end{document}