創建具有一些裝飾結構的有向圖

創建具有一些裝飾結構的有向圖

透過利用 Tikz,我想創建一個如下圖:

圖形

所以我想要一個經典的有向圖,其中每個節點都有一些文字。此外,每個節點都有一個關聯的框架,框架中充滿了一堆要點。

此外,還有三個可選但所需的屬性:

  • 節點大小均相同。如果他們能夠正確地將文字保存在其中,從而調整節點大小,那就太好了。具有最大文字的節點。

  • 能夠將框架放置在所需的節點位置(請參閱圖中 A、C 與 B 之間的差異)。一組選項(如上、下、左、右)和成對組合就足夠了,而不是按座標放置。

  • 框架尺寸正在調整。項目符號點的數量(請參閱圖表中不同的框架尺寸)。

以我目前的知識,我只能建立由節點和邊組成的通用有向圖。我將嘗試透過閱讀文件來弄清楚如何實現所有這些(假設有辦法),但是如果有人可以伸出援手,我將非常感激。

答案1

幾種風格就可以了:

\documentclass{article}
\usepackage{enumitem}
\usepackage{tikz}
\usetikzlibrary{positioning}

\newlist{tikzitem}{itemize}{1}
\setlist[tikzitem,1]{label=$\bullet$,nolistsep,leftmargin=*}

\begin{document}

\begin{tikzpicture}[
mynode/.style={
  circle,
  draw,
  fill=yellow,
  minimum size=1cm,
  align=center
  },
frame/.style={
  draw=cyan,
  line width=3pt,
  text width=2cm,
  rounded corners
  },
ar/.style={
  ->,
  >=latex
  }    
]
\node[mynode] (a) {Some text};
\node[mynode,below right=2cm and 6cm of a]  (c) {Some text};
\node[mynode,below left=2cm and 6cm of c]  (b) {Some text};

\node[frame,anchor=north west] at (a.-90) 
  {%
  \begin{tikzitem} 
  \item First.
  \item Second.
  \item Third.
  \end{tikzitem}%
  };
\node[frame,anchor=south west] at (b.90) 
  {%
  \begin{tikzitem} 
  \item First.
  \item Second.
  \item Third.
  \end{tikzitem}%
  };
\node[frame,anchor=west] at (c.0) 
  {%
  \begin{tikzitem} 
  \item First.
  \item Second.
  \item Third.
  \item Fourth.
  \item Fifth.
  \end{tikzitem}%
  };

\draw[ar] (a) to[bend left] (c);  
\draw[ar] (b) to[bend right] (c);  
\end{tikzpicture}

\end{document}

在此輸入影像描述

at (<name>.<angle>)可以使用幀的語法和適當的錨點來控制幀相對於圓的位置。

我使用該enumitem套件獲得了 itemize 的自訂版本,沒有額外的垂直間距,也沒有左邊距。

相關內容