![用箭头尽可能简洁地表示状态通信](https://linux22.com/image/315518/%E7%94%A8%E7%AE%AD%E5%A4%B4%E5%B0%BD%E5%8F%AF%E8%83%BD%E7%AE%80%E6%B4%81%E5%9C%B0%E8%A1%A8%E7%A4%BA%E7%8A%B6%E6%80%81%E9%80%9A%E4%BF%A1.png)
我试图展示马尔可夫过程中状态之间的通信,基本上是这样的,虽然箭头角度并不重要,只是节点之间有这种关系:
我已经研究过 TikZ(我从来没有用过) 并尝试找到一些有关创建此类节点的最简单方法的信息,但我发现的大多数资料对于我试图完成的简单任务来说似乎过于复杂。有什么想法吗?
答案1
除非您需要做更复杂的事情,否则您可以使用tikz-cd
。
输出
代码
\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
\begin{figure}[!h]
\[
\begin{tikzcd}
& & & 4 \arrow[dr, rightarrow] & \\
3 \arrow[r, leftrightarrow] & 1 \arrow[r, leftrightarrow] & 0 \arrow[r, rightarrow] \arrow[ur, rightarrow] & 8 \arrow[r, leftarrow] \arrow[u, leftrightarrow] & 5
\end{tikzcd}
\]
\caption{My figure}
\end{figure}
\end{document}
答案2
大量使用以下工具绘制图形的示例tikz
可以找到这里. 还有手册有示例和更多信息。要调整图像样式,请参考此资源。
这里有一个基于矩阵的简单解决方案,可解决您的问题。
\documentclass[tikz, border=6mm]{standalone}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}[>=latex]
\matrix[matrix of nodes, %
column sep=1cm, %
row sep=1cm] (m) {
& & & 4 & \\
3 & 1 & 0 & 8 & 5 \\
};
\draw [<->] (m-2-1) -- (m-2-2);
\draw [<->] (m-2-2) -- (m-2-3);
\draw [->] (m-2-3) -- (m-1-4);
\draw [->] (m-2-3) -- (m-2-4);
\draw [<->] (m-1-4) -- (m-2-4);
\draw [->] (m-1-4) -- (m-2-5);
\draw [<-] (m-2-4) -- (m-2-5);
\end{tikzpicture}
\end{document}