如何向自动生成的图中添加边

如何向自动生成的图中添加边

我没有用 LaTeX 绘图的经验,只是偶然发现了这个tkz-berge包。我想画一个完全图、一个小世界图和一个随机连通图。

完整的图表很简单

\begin{tikzpicture}

  \begin{scope}[xshift=12cm]

    \grComplete[RA=2/sin(60)]{10}

  \end{scope}

 \draw (12,-3) node {A Complete Graph};

\end{tikzpicture}

小世界图基本上是一个圆,上面加了几条“与”圆相交的边。因此,我开始用

\begin{tikzpicture}

 \begin{scope}[xshift=12cm]

   \grCycle[prefix=a,RA=2/sin(60)]{10}

  \end{scope}

 \draw (12,-3) node {A Small World Graph};

\end{tikzpicture}

但是我如何手动向该图添加边,即如何引用已自动生成的节点并要求包在它们之间画一条边。

为了得到一个与其他两个节点数量和位置相同的随机图,我开始使用

\begin{tikzpicture}

 \begin{scope}[xshift=12cm]

   \grEmptyCycle[prefix=a,RA=2/sin(60)]{10}

    \end{scope}

 \draw (12,-3) node {A Random Graph};

\end{tikzpicture}

效果不错,但现在我遇到了和以前一样的问题,我想手动将边添加到已绘制的节点。请注意,边是否由 LaTeX 随机生成对我来说并不重要,我很乐意手动添加边,使其看起来像一个随机图。

答案1

通常标签打印在节点内部,因此您可以使用以下方式连接它们\Edges(<name1>,<name2>,...)

在此处输入图片描述

代码:

\documentclass[margin=5mm]{standalone}
\usepackage{tkz-berge}

\begin{document}

\begin{tikzpicture}
  \begin{scope}[xshift=12cm]
  \grComplete[RA=2/sin(60)]{10}
  \end{scope}
  \draw (12,-3) node {A Complete Graph};
\end{tikzpicture}

\begin{tikzpicture}
  \begin{scope}[xshift=12cm]
    \grCycle[prefix=a,RA=2/sin(60)]{10}
  \end{scope}
  \Edges(a1,a5,a9)
  \Edges[style={dashed,lightgray}](a7,a2)
  \draw (12,-3) node {A Small World Graph};
\end{tikzpicture}

\begin{tikzpicture}
  \begin{scope}[xshift=12cm]
    \grEmptyCycle[prefix=a,RA=2/sin(60)]{10}
  \end{scope}
  \Edges(a0,a1,a2,a3)
  \draw (12,-3) node {A Random Graph};
\end{tikzpicture}
\end{document}

使用\SetVertexNoLabel\SetVertexLabel您可以禁用和启用标签打印。

在此处输入图片描述

代码:

\documentclass[margin=5mm]{standalone}
\usepackage{tkz-berge}

\begin{document}
\SetVertexNoLabel% disables labels
\begin{tikzpicture}
  \begin{scope}[xshift=12cm]
  \grComplete[RA=2/sin(60)]{10}
  \end{scope}
  \draw (12,-3) node {A Complete Graph};
\end{tikzpicture}

\begin{tikzpicture}
  \begin{scope}[xshift=12cm]
    \grCycle[prefix=a,RA=2/sin(60)]{10}
  \end{scope}
  \Edges(a1,a5,a9)
  \Edges[style={dashed,lightgray}](a7,a2)
  \draw (12,-3) node {A Small World Graph};
\end{tikzpicture}
\SetVertexLabel% enable labels
\begin{tikzpicture}
  \begin{scope}[xshift=12cm]
    \grEmptyCycle[prefix=a,RA=2/sin(60)]{10}
  \end{scope}
  \Edges(a0,a1,a2,a3)
  \draw (12,-3) node {A Random Graph};
\end{tikzpicture}
\end{document}

相关内容