Graphviz 使用 XY-Pic 或 Tikz 记录结构

Graphviz 使用 XY-Pic 或 Tikz 记录结构

我使用 Graphviz 绘制了以下图表,但我不知道如何使用 XY-Pic 或 Tikz 绘制。问题是我使用了记录样式节点。有没有办法使用其他两个来做到这一点?

在此处输入图片描述

答案1

这是使用包的示例forest。它不是您可以实现的最佳匹配,但它有效。

图形可视化

\documentclass[border=3.14mm]{standalone}

\usepackage[edges]{forest}
\usetikzlibrary{shapes.multipart,arrows.meta}

\forestset{rect/.style = {rectangle split,
                        rectangle split parts=2,
                        draw}
          }
          
\begin{document}
    
    \begin{forest}
        for tree={edge={-Latex},child anchor=north,l=15mm}
        [Methane,draw
            [s1\nodepart{two}Carbon,rect]
            [s2\nodepart{two}Hydrogen,rect]
            [s3\nodepart{two}Hydrogen,rect]
            [s4\nodepart{two}Hydrogen,rect]
            [s5\nodepart{two}Hydrogen,rect]
        ]
    \end{forest}

\end{document}

当然,你也可以用普通的 TiZ,包括multiparts选项,如下所示:

V2

\documentclass[tikz,border=3.14mm]{standalone}

\usetikzlibrary{shapes.multipart,arrows.meta,positioning}

\tikzset{r/.style = {
            rectangle split,
            rectangle split parts=2,
            draw,
            inner sep=5pt,
            align=center
                    }
          }
          
\begin{document}
    \begin{tikzpicture}[>=Latex]
        \node[draw,minimum height=1cm](M){Methane};
        \node[below=of M,r](3){s3\nodepart{two}\strut Hydrogen};
        \node[left=of 3,r](2){s2\nodepart{two}\strut Hydrogen};
        \node[left=of 2,r](1){s1\nodepart{two}\strut Carbon};
        \node[right=of 3,r](4){s4\nodepart{two}\strut Hydrogen};
        \node[right=of 4,r](5){s5\nodepart{two}\strut Hydrogen};
        
        \foreach \i in {1,...,5}
            \draw[->] (M) -- (\i.north);
    \end{tikzpicture}       
\end{document}

相关内容