我想创建如图所示的节点图:

我想创建如图所示的节点图:

图像

我用 - 写了一个示例图,\xymatrix没问题。我用 &*+[Fo] 添加了圆圈,也没问题。我用 - 在第一个圆圈内添加了表格,\begin{tabular}没问题。但是表格需要旋转 -45 度。当我使用 isorot 包旋转它时,首先 - 它不是朝着中心旋转,而是朝着角落旋转,更糟糕的是,xymatrix 无法确定圆圈大小,它会缩小。

在下一个例子中我怎样旋转表格?

$$\xymatrix{&*+[Fo]{
\begin{tabular}{c|c}
2&3\\
\hline
4&5
\end{tabular}
}\ar@{-}[r]\ar@{-}[dd]\ar@{-}[rrd]&*+[Fo]{3}\ar@{-}[lld]\ar@{-}[ldd]\ar@{-}[dd]\ar@{-}[rdd]\ar@{-}[rd]& \\ *+[Fo]{1}\ar@{-}[rrr] &&&*+[Fo]{4}\ar@{-}[ld] \\ &*+[Fo]{7}&*+[Fo]{6}\ar@{-}[l]&*+[Fo]{5}& }$$

答案1

由于您没有说必须使用xy-pic,即使您使用了,这里还是有一个 TikZ 建议。我使用 TikZ 来制作此类图表,因为它功能强大,而且易读的语法对于制作复杂图表非常有益。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{arrows,calc,positioning}

\newcommand*{\drawnode}[1]{
  \draw (#1.45) -- (#1.225);
  \draw (#1.135) -- (#1.315);
  \node at ( $ (#1) + (90:0.5cm)  $ ) {1};
  \node at ( $ (#1) + (180:0.5cm) $ ) {2};
  \node at ( $ (#1) + (0:0.5cm)   $ ) {3};
  \node at ( $ (#1) + (270:0.5cm) $ ) {4};
}
\begin{document}

\begin{tikzpicture}[shorten >=1pt, auto, node distance=2.5 cm, >=angle 60,
  splittednode/.style={circle, draw, minimum size=1.5 cm},
  every node/.append style={font=\sffamily}]

\node[splittednode] (A) {};
\node[splittednode, above right of =A,] (B) {};
\node[splittednode, below right of =A,] (C) {};

\foreach \Node in {A,B,C}
  \drawnode{\Node};

\draw[->] (A) -- node{10} (B);
\draw[->] (A) -- node{20} (C);
\end{tikzpicture}

\end{document}

图表

相关内容