[Tex/LaTex] How to nest a graph within a node in TikZ and draw edges between the graphs

nestingnodestikz-pgf

I'm trying to draw a graph and have a separate graph within one of the outer nodes. I seen this question, but I don't understand how the matrix nodes will help me. I would also like to draw edges between the outer nodes to the inner nodes.

Could someone please make a quick example of with 3 nodes, where one of the nodes contains a subgraph with 3 nodes?

Best Answer

Here's a little example: two "outer" nodes, each one containing a graph (formed with "inner" nodes) and some edges and arrows connecting outer nodes to outer nodes, and inner nodes from one graph to inner nodes of the other; the remember picture option lets you access inner and outer nodes at any time:

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

\begin{document}

\begin{tikzpicture}[remember picture,
  inner/.style={circle,draw=blue!50,fill=blue!20,thick,inner sep=3pt},
  outer/.style={draw=green,fill=green!20,thick,inner sep=10pt}
  ]
  \node[outer,draw=green] (A) {
    \begin{tikzpicture}
      \node [inner,draw=blue] (ai)  {A1};
      \node [inner,draw=blue,below=of ai] (aii) {A2};
      \node [inner,draw=blue,right=of aii] (aiii) {A3};
      \draw[red,thick] (ai) -- (aii) -- (aiii) -- (ai);
    \end{tikzpicture}
  };
  \node[outer,draw=green,right=of A] (B) {
    \begin{tikzpicture}
      \node [inner,draw=blue] (bi)  {B1};
      \node [inner,draw=blue,below=of bi] (bii) {B2};
      \node [inner,draw=blue,right=of bii] (biii) {B3};
      \node [inner,draw=blue,right=of bi] (biv) {B4};
      \draw[red,thick] (bi) -- (bii) -- (biii) -- (biv) -- (bi) -- (biii);
    \end{tikzpicture}
  };
  \draw[thick,orange,->] (ai) -- (bii);
  \draw[orange,->] (aiii) -- (bi);
  \draw[orange,->] (A.90) -- ($(A.90)+(0,1)$) -| (B);
\end{tikzpicture}

\end{document}

enter image description here

Related Question