在下图中,边权重默认写为水平,我想在两个节点之间平行于边写入权重值。
我怎样才能在两个节点之间的边缘上平行写入权重值?
\begin{center}
\begin{tikzpicture}[shorten >=1pt,node distance=2.2cm,on grid]
\node[state] (q_1) {$f_1$};
\node[state] (q_7) [below=of q_1] {$f_1$};
\node[state] (q_13) [below=of q_7] {$f_1$};
\node[state] (start) [left=of q_13] {$start$};
\node[state] (q_19) [below=of q_13] {$f_1$};
\node[state] (q_25) [below=of q_19] {$f_1$};
\path[->] (start) edge node [above] {0.0899} (q_1)
(start) edge node [above] {0.1304} (q_7)
(start) edge node [above] {0.3051} (q_13)
(start) edge node [above] {0.2443} (q_19)
(start) edge node [above] {0.1044} (q_25);
\end{tikzpicture}
\end{center}
答案1
您可以使用该sloped
选项沿路径对齐节点。
编辑:只是为了让未来的访问者清楚地看到这一点(我已经在下面的评论中说明了这一点):您永远不应该使用像$start$
这样的结构,因为这意味着公式s*t*a*r*t
而不是单词“开始”。如果您想要用斜体书写某些内容,您可以\itshape
在组中使用,或者\textit
作为带参数的宏使用(所以{\itshape abc}
或\textit{abc}
)。在 Ti钾\itshape
您可以在节点选项中指定 Z,font
例如\node[font=\itshape]{abc}
。如果您需要数学语境中的单词,则可以使用\text
提供的单词amsmath
,例如\frac{\text{distance}}{\text{time}}
。
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning,automata}
\begin{document}
\begin{tikzpicture}[shorten >=1pt,node distance=2.2cm,on grid]
\node[state] (q_1) {$f_1$};
\node[state] (q_7) [below=of q_1] {$f_1$};
\node[state] (q_13) [below=of q_7] {$f_1$};
\node[state] (start) [left=of q_13] {$start$}; % change this
\node[state] (q_19) [below=of q_13] {$f_1$};
\node[state] (q_25) [below=of q_19] {$f_1$};
\path[->] (start) edge node [above,sloped] {0.0899} (q_1)
(start) edge node [above,sloped] {0.1304} (q_7)
(start) edge node [above,sloped] {0.3051} (q_13)
(start) edge node [above,sloped] {0.2443} (q_19)
(start) edge node [above,sloped] {0.1044} (q_25);
\end{tikzpicture}
\end{document}