방향 세트의 tikz 그래프를 개선하는 데 도움을 주세요.

방향 세트의 tikz 그래프를 개선하는 데 도움을 주세요.

저는 tikz 초보자입니다. 나는 방향성 세트의 그래프를 그리고 싶었고 무슨 일이 일어나고 있는지에 대한 이해 없이 온라인 예제의 코드를 함께 넣어서 그렇게 할 수 있었습니다. 이제 나는 몇 가지 개선 사항을 적용하고 싶지만 이에 대한 예제는 찾을 수 없습니다(내 코드와 통합될 수 있음).

지금까지 내 코드는 다음과 같습니다.

\usepackage{tikz}
\usetikzlibrary{positioning}
\tikzset{main node/.style={circle,draw}}
...
\begin{tikzpicture}
\node[main node] (B) {};
\node[main node] (a) [above left = 1 cm and 1cm of B] {$\alpha$};
    \node[main node] (a1)  [above left = 1 cm and 1cm of a]  {};
    \node[main node] (a2)   [above right = 1 cm and 1cm of a] {};
    \node[main node] (g) [above right = 1cm and 1cm of B] {$\gamma$};
    \node[main node] (g1)   [above left = 1 cm and 1cm of g]{};
    \node[main node] (g2)   [above right = 1 cm and 1cm of g]{};
    \node[main node] (g3)   [above right = 1 cm and 1cm of g2]{};
\path[draw,thick]
    (B) edge node {} (a)
    (B) edge node {} (g)
    (a) edge node {} (a1)
    (a) edge node {} (a2)    
    (g) edge node {} (g1)
    (g) edge node {} (g2)
    (g2) edge node {} (g3);         
\end{tikzpicture}

지금까지 내 결과는 다음과 같습니다.그래프

내가 만들고 싶은 개선 사항:

1) 그래프가 계속되는 것을 나타내고 싶습니다. 예를 들어 오른쪽 위 노드와 가장자리를 현재 가장자리 방향의 대시 3개로 바꾸려고 합니다. 이러한 "세 개의 대시 확장"도 의 하위 항목에 추가하고 싶습니다 $\alpha$.

$\alpha$2) 포인트 1)에서 표시된 확장을 포함하여 의 모든 자손 주위에 직사각형을 그리고 싶습니다 . 이 상자 상단에 다음과 같은 텍스트를 넣고 싶습니다.$\geq\alpha$

3) 모든 원을 동일한 크기로 만들고 싶습니다. 이는 가장 큰 레이블에 의해 자동으로 결정됩니다.

편집하다:

minimum size=1cm노드의 스타일을 사용하여 3)을 부분적으로 해결할 수 있습니다 . 단, 라벨, 글꼴, 기타 크기가 변경될 때마다 1cm씩 조정해야 합니다.

답변1

1은 노드를 보이지 않게 만들고(생략 draw) 가장자리를 만들어서 수행할 수 있습니다 dashed.

2는 tikzlibrary를 사용하여 수행할 수 있습니다 fit.

3번은 노드 크기를 미리 설정해야 하는데 모든 노드가 처리된 후에야 가장 큰 노드를 알 수 있기 때문에 다소 어렵습니다. 이 문제를 해결하는 방법이 있지만 절대 크기(직접 제안한 대로)를 정의하거나 사용자가 제공한 가장 큰 노드(아래 MWE)에서 최대 크기를 계산하는 것이 (훨씬) 더 쉽습니다.

참고: 이 솔루션은 기존 질문을 기반으로 합니다. 예:Tikz - 노드 세트 주위에 상자를 그리는 방법. 새로운 질문을 하기 전에 반드시 광범위한 검색을 수행하시기 바랍니다. MWE의 경우 , 를 포함 하고 를 포함하지 않고 \documentclass컴파일 되는지 확인하세요 .\begin{document}...

MWE:

\documentclass{article}
\usepackage{tikz}
\usepackage{calc}
\usetikzlibrary{positioning}
\usetikzlibrary{fit}
\tikzset{main node/.style={circle,draw}}

\newcommand{\largest}{$\gamma$}
\newlength{\sizemax}
\setlength{\sizemax}{\maxof{\widthof{\largest}}{\totalheightof{\largest}}}
\tikzset{minimum size=\sizemax+10pt}

\begin{document}
\begin{tikzpicture}
\node[main node] (B) {};
\node[main node] (a) [above left = 1cm and 1cm of B] {$\alpha$};
    \node[main node] (a1)  [above left = 1cm and 1cm of a]  {};
    \node[main node] (a2)   [above right = 1cm and 1cm of a] {};
    \node (a1x)   [above left = 1cm and 1cm of a1]{};
    \node (a2x)   [above left = 1cm and 1cm of a2]{};
    \node[main node] (g) [above right = 1cm and 1cm of B] {$\gamma$};
    \node[main node] (g2)   [above right = 1cm and 1cm of g]{};
    \node (g3)   [above right = 1cm and 1cm of g2]{};
\path[draw,thick]
    (B) edge (a)
    (B) edge (g)
    (a) edge (a1)
    (a) edge (a2)    
    (g) edge (a2)
    (g) edge (g2)
    (g2) edge[dashed] (g3)
    (a1) edge[dashed] (a1x)
    (a2) edge[dashed] (a2x);
\node[draw,fit=(a) (a1) (a2) (a1x) (a2x)] (ad) {};
\node[above=0mm of ad] {$\geq\alpha$};
\end{tikzpicture}
\end{document}

결과:

여기에 이미지 설명을 입력하세요

관련 정보