tikz trees

  • Creatore
    Topic
  • #60133
    claudio
    Partecipante
      Up
      0
      Down
      ::


      devo realizzare due alberi per rappresentare gli stati di due o più variabili booleane
      ho realizzato

      `
      \documentclass{article}
      \usepackage[latin1]{inputenc}
      \usepackage{tikz}
      \usetikzlibrary{trees}
      \begin{document}
      \pagestyle{empty}
      % Set the overall layout of the tree
      \tikzstyle{level 1}=[level distance=3.5cm, sibling distance=3.5cm]
      \tikzstyle{level 2}=[level distance=3.5cm, sibling distance=2cm]
      \tikzstyle{level 3}=[level distance=3.5cm, sibling distance=1cm]
      % Define styles for bags and leafs
      \tikzstyle{bag} = [text width=4em, text centered]
      \begin{figure}
      \begin{tikzpicture}[grow=right, sloped]
      \node[bag] {0}
      child{
      node[bag] {0}
      child{
      node[bag] {0}
      child{
      node[bag]{0}
      }
      child{
      node[bag]{1}
      }
      }
      child {
      node[bag] {1}
      child{
      node[bag]{0}
      }
      child{
      node[bag]{1}
      }
      }
      }
      child{
      node[bag]{1}
      child{
      node[bag] {0}
      child{
      node[bag]{0}
      }
      child{
      node[bag]{1}
      }
      }
      child {
      node[bag] {1}
      child{
      node[bag]{0}
      }
      child{
      node[bag]{1}
      }
      }
      };

      \end{tikzpicture}
      \begin{tikzpicture}
      \draw (0,0) — (11.5,0);
      \draw (1,1pt) — (1,-3pt)
      node[anchor=north] {1};
      \draw (4.5,1pt) — (4.5,-3pt)
      node[anchor=north] {2};
      \draw (7.9,1pt) — (7.9,-3pt)
      node[anchor=north] {3};
      \draw (11.3,1pt) — (11.3,-3pt)
      node[anchor=north] {4};
      \end{tikzpicture}
      \begin{tikzpicture}[grow=right, sloped]
      \node[bag] {1}
      child{
      node[bag] {0}
      child{
      node[bag] {0}
      child{
      node[bag]{0}
      }
      child{
      node[bag]{1}
      }
      }
      child {
      node[bag] {1}
      child{
      node[bag]{0}
      }
      child{
      node[bag]{1}
      }
      }
      }
      child{
      node[bag]{1}
      child{
      node[bag] {0}
      child{
      node[bag]{0}
      }
      child{
      node[bag]{1}
      }
      }
      child {
      node[bag] {1}
      child{
      node[bag]{0}
      }
      child{
      node[bag]{1}
      }
      }
      };
      \end{tikzpicture}
      \end{figure}
      \end{document}
      `
      sicuramente non è il massimo
      ma rende l’idea di quello che voglio ottenere
      sto esplorando tikz
      ma questa volta forse mi sono perso..
      Grazie Claudio

    Visualizzazione 2 filoni di risposte
    • Autore
      Risposte
      • #60134
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Perché dici che ti sei perso?

          Certo un albero non è la cosa più semplice da fare, giusto per esplorare; certo quello che hai fatto richiede ancora qualche rifinitura: per esempio le biforcazioni degli ultimi rametti a destra dovrebbero essere simmetriche rispetto all’orizzontale, lo spazio attorno ai nodi così bianco è troppo grande, ma se incorniciassi i nodi dentro e dei cerchi riempiti di un colore di sfondo probabilmente quello spazio andrebbe bene.
          In ogni caso continua; non ti perdere: ne vale la pena.

        • #60135
          claudio
          Partecipante
            Up
            0
            Down
            ::

            Perché dici che ti sei perso?

            Certo un albero non è la cosa più semplice da fare, giusto per esplorare; certo quello che hai fatto richiede ancora qualche rifinitura: per esempio le biforcazioni degli ultimi rametti a destra dovrebbero essere simmetriche rispetto all’orizzontale, lo spazio attorno ai nodi così bianco è troppo grande, ma se incorniciassi i nodi dentro e dei cerchi riempiti di un colore di sfondo probabilmente quello spazio andrebbe bene.
            In ogni caso continua; non ti perdere: ne vale la pena.

            non avevo pensato ai cerchi!!
            ho risolto con
            `
            \tikzstyle{bag} =[shape=circle,draw,
            text centered]
            `
            non riesco a risolvere una cosa
            i numeri sull’asse X dovrebbero coincidere con i nodi che sono sopra e sotto
            è possibile conoscere in qualche modo le x dei nodi per piazzare così i numeri sull’asse?
            sopratutto posso utilizzare questa cosa dato che l’asse e gli alberi sono tre figure diverse?
            Claudio

          • #60136
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              metti tutto dentro un’unico ambiente tikzpicture; magari non usare misure assolute, ma definisci x=0.01\textwidth e lo stesso per y, e metti queste due dichiarazioni dentro le opzioni dell’apertura dell’ambiente; in questo modo togli tutti i pt e tutte le misure assolute e i nodi e i bag dovrebbero poter essere localizzati meglio. In ongi caso, anche se devi andare alla cieca per trovare le coordinate esatte per mettere i nodi della scala, almeno dopo sai che quelle sono coordinate di un unico disegno. Questo è quello che farei io; per la verità non mi sarebbe nemmeno venuto in mente di sovrapporre tre figure.

          Visualizzazione 2 filoni di risposte
          • Devi essere connesso per rispondere a questo topic.

          Go to top