Помощь с Tikz Circles

Помощь с Tikz Circles

Я использую TikZ для рисования дерева ветвей и границ, и мне нужна помощь.

Вот мой код:

\documentclass[
    12pt,           
    oneside,                
    a4paper,            
    english,        
    french,     
    spanish,            
    brazil              
    ]{abntex2}
\usepackage{graphicx}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{calc, shapes}

\begin{document}

\begin{figure}[H]
\centering
\tikzset{thick,
         tree node/.style = {align=center, inner sep=0pt, font = \scriptsize},
every label/.append style = {font=\scriptsize},
                 S/.style = {draw, circle, minimum size = 20mm, inner sep=0pt,
                             top color=white, bottom color=blue!20},
               ENL/.style = {% edge node left
                             font=\footnotesize, left=1pt},
               ENR/.style = {% edge node right
                             font=\footnotesize, right=1pt},
                     grow = down,
         sibling distance = 2.8cm,
           level distance = 3cm
           }
\begin{tikzpicture}
\node [S, label= 2:Some text here] {$PL0$}
    child{node [S] {$PL1$}
            child{node [S] {$PL3$}
            edge from parent node[ENL] {$x2 \leq 2$}}
            child{node [S] {$PL4$}
                 child{node [S] {$PL5$}
                     child{node [S] {$PL7$}
                     edge from parent node[ENL] {$x2 \leq 3$}}
                     child{node [S, label = 2:More text here] {$PL8$}
                     edge from parent node[ENR] {$x2 \geq 4$}}
          edge from parent node[ENL] {$x1 \leq 3$}}
          child{node [S, label = 2:Another text here] {$PL6$}
          edge from parent node[ENR] {$x1 \geq 4$}}
            edge from parent node[ENR] {$x2 \geq 3$}}
    edge from parent node[ENL] {$x1 \leq 4$}}
    child{node [S, label = 2:Last text here] {$PL2$}
    edge from parent node[ENR] {$x1 \geq 5$}};
\end{tikzpicture}
        \caption{My Figure.}
\end{figure}

\end{document}

В результате у вас должна получиться такая цифра:

введите описание изображения здесь

Ну, мне нужна помощь по двум вопросам:

  1. Даже при использовании \centeringкоманды фигура не центрируется. Что я здесь упускаю?

  2. Мне нужно написать больше информации внутри этих кругов. Например, в первом (PL0) должна быть следующая дополнительная информация:

введите описание изображения здесь

Я перепробовал много вариантов, но так и не смог втиснуть эту информацию в круг.

решение1

  1. Фигураявляетсяпо центру. Чтобы это проверить, я добавил рамки вокруг текстовой области и tikzpicture.
  2. Если вы хотите больше материала в кругах, вам нужно добавить его в содержимое узла. Если вы хотите разрешить многострочные тексты, вам нужно добавить соответствующий text widthключ выравнивания (или ), например align=center.

\documentclass[
    12pt,           
    oneside,                
    a4paper,            
    english,        
    french,     
    spanish,            
    brazil              
    ]{abntex2}
\usepackage[showframe]{geometry}
\usepackage{float}
\usepackage{tikz}
\usetikzlibrary{calc, shapes}

\begin{document}

\begin{figure}[H]
\centering
\tikzset{thick,
         tree node/.style = {align=center, inner sep=0pt, font = \scriptsize},
every label/.append style = {font=\scriptsize},
                 S/.style = {draw, circle, minimum size = 20mm, inner sep=0pt,
                             top color=white, bottom color=blue!20,
                             align=center}, %<-
               ENL/.style = {% edge node left
                             font=\footnotesize, left=1pt},
               ENR/.style = {% edge node right
                             font=\footnotesize, right=1pt},
                     grow = down,
         sibling distance = 2.8cm,
           level distance = 3cm
           }
\begin{tikzpicture}
\node [S, label= 2:Some text here] {$PL0$}
    child{node [S] {$PL0$\\ $x_1 = 4,333$ e\\ $x_2 = 2$ \\ $f = 42$}
            child{node [S] {$PL3$}
            edge from parent node[ENL] {$x2 \leq 2$}}
            child{node [S] {$PL4$}
                 child{node [S] {$PL5$}
                     child{node [S] {$PL7$}
                     edge from parent node[ENL] {$x2 \leq 3$}}
                     child{node [S, label = 2:More text here] {$PL8$}
                     edge from parent node[ENR] {$x2 \geq 4$}}
          edge from parent node[ENL] {$x1 \leq 3$}}
          child{node [S, label = 2:Another text here] {$PL6$}
          edge from parent node[ENR] {$x1 \geq 4$}}
            edge from parent node[ENR] {$x2 \geq 3$}}
    edge from parent node[ENL] {$x1 \leq 4$}}
    child{node [S, label = 2:Last text here] {$PL2$}
    edge from parent node[ENR] {$x1 \geq 5$}};
\draw (current bounding box.south west) rectangle (current bounding box.north east);    
\end{tikzpicture}
        \caption{My Figure.}
\end{figure}

\end{document}

введите описание изображения здесь

Также рекомендую обратить внимание на forestупаковку.

Связанный контент