Arbre pondéré

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Arbre pondéré

Messagepar masiuxus » Jeudi 10 Juillet 2008, 10:29

Bonjour.
Je me suis cassé la tête pour trouver un moyen de mettre les probas sur un arbre pondéré en TIKz, mais en vain.

Code: Tout sélectionner
\usetikzlibrary{trees}

\begin{tikzpicture}[level distance=2.5cm]
\tikzstyle{edge from parent}=[->,draw]
\node {$\Omega$} [clockwise from=30, sibling angle=60]
   child {node {$T$} [clockwise from=20, sibling angle=30]
      child {node {$T$}}
      child {node {$\overline{T}$}}
   }
   child {node {$\overline{T}$} [clockwise from=20, sibling angle=30]
      child {node {$T$}}
      child {node {$\overline{T}$}}
   };
\end{tikzpicture}


me donne l'arbre sans les poids. Je ne trouve pas de commandes (dans la doc de PGF) qui permette d'inscrire quelque chose sur les liens noeuds-child ... Quelqu'un a une idée ?
masiuxus
 

Publicité

Re: Arbre pondéré

Messagepar pg » Jeudi 10 Juillet 2008, 16:09

Il y a des exemples d'arbres avec des poids dans ce fil de discussion.

Si tu veux les noms sur les flèches et pas au-dessus ou en-dessous, il faut juste modifier un peu la syntaxe :

Code: Tout sélectionner
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}[level distance=2.5cm]
\tikzstyle{level 0}=[rectangle,color=black,draw]
\tikzstyle{level 1}=[ellipse, draw]
\tikzstyle{level 2}=[rectangle,rounded corners, draw]
\tikzstyle{level 3}=[rectangle,rounded corners=0, draw]
\tikzstyle{edge from parent}=[->,draw]
\node[level 0] {root} [grow'=right,sibling distance=3cm]
  child {node[level 1] {up}
         child {node[level 2] {up up}
                child {node[level 3] {up up}
                       edge from parent node[fill=white] {$c_1$}
                      }
                child {node[level 3] {\phantom{down up up}}
                       edge from parent node[fill=white] {$c_2$}
                      }
                edge from parent node[fill=white] {$b_1$}
               }
         child {node[level 2] {\phantom{up down}}
                edge from parent node[fill=white] {$b_2$}
               }
         edge from parent node[fill=white] {$a_1$}
        }
  child {node[level 1] {down}
         child {node[level 2] {down up}
                child {node[level 3] {down up up}
                       edge from parent node[fill=white] {$c_3$}
                      }
                child {node[level 3] {\phantom{down up down}}
                       edge from parent node[fill=white] {$c_4$}
                      }
                edge from parent node[fill=white] {$b_3$}
               }
         child {node[level 2] {down down}
                child {node[level 3] {down down up}
                       edge from parent node[fill=white] {$c_5$}
                      }
                child {node[level 3] {down down down}
                       edge from parent node[fill=white] {$c_6$}
                      }
                edge from parent node[fill=white] {$b_4$}
               }
         edge from parent node[fill=white] {$a_2$}
        };
\end{tikzpicture}
\end{document}


arbre_pondere.png
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Arbre pondéré

Messagepar masiuxus » Jeudi 10 Juillet 2008, 18:12

J'avais bien vu ce fil (j'ai oublié de le dire), mais je n'arrive pas à adapter mon code ... C'est ce "edge from parent" qui ne fait pas ce que je veux ... Si je reprends mon code et que je mets "edge blabla...", ça ne donne pas ce que je veux ...
masiuxus
 

Re: Arbre pondéré

Messagepar pg » Jeudi 10 Juillet 2008, 18:24

C'est peut-être un problème de syntaxe, alors. Si je reprend ton code et que je met des edge from parent :

Code: Tout sélectionner
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}[level distance=2.5cm]
\tikzstyle{edge from parent}=[->,draw]
\node {$\Omega$} [clockwise from=30, sibling angle=60]
   child {node {$T$} [clockwise from=20, sibling angle=30]
      child {node {$T$}
      edge from parent node[fill=white] {$1/2$}}
      child {node {$\overline{T}$}
      edge from parent node[fill=white] {$1/2$}}
   edge from parent node[fill=white] {$1/2$}
   }
   child {node {$\overline{T}$} [clockwise from=20, sibling angle=30]
      child {node {$T$}
      edge from parent node[fill=white] {$1/2$}}
      child {node {$\overline{T}$}
      edge from parent node[fill=white] {$1/2$}}
   edge from parent node[fill=white] {$1/2$}
   };
\end{tikzpicture}
\end{document}


j'obtiens ça :

arbre_pond.png
arbre_pond.png (6.73 Kio) Vu 4694 fois
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Arbre pondéré

Messagepar masiuxus » Jeudi 10 Juillet 2008, 18:29

Ouais ... ben en compilant, j'obtiens ça moi :

Image

C'est pour ça que j'y arrivais pas ... mais comment ça se fait ??

EDIT : il faut dire que mon arbre est dans un environnement tikz déjà ... car si je le mets à l'extérieur, ça fonctionne.
Dans l'environnement tikz, il y a un "inner xsep" et "inner ysep". ça peut venir de là ?
masiuxus
 

Re: Arbre pondéré

Messagepar pg » Jeudi 10 Juillet 2008, 18:55

Je ne sais pas pourquoi ça ne fonctionne pas à l'intérieur d'un tikzpicture (même un simple node tout seul), mais tu peux t'en tirer en nommant explicitement chaque nœud de l'arbre puis en plaçant à la main les labels. La syntaxe est plus lourde, mais ça semble fonctionner.

Code: Tout sélectionner
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\begin{document}
\begin{tikzpicture}
\node at (0,0) {\begin{tikzpicture}[level distance=2.5cm]
\tikzstyle{edge from parent}=[->,draw]
\node (root) {$\Omega$} [clockwise from=30, sibling angle=60]
child {node (child1) {$T$} [clockwise from=20, sibling angle=30]
      child {node (child11) {$T$}
      (child1) -- (child11) node [fill=white,pos=0.5] {$1/2$}}
      child {node (child12) {$\overline{T}$}
      (child1) -- (child12) node [fill=white,pos=0.5] {$1/2$}}
   (root) -- (child1) node [fill=white,pos=0.5] {$1/2$}
   }
   child {node (child2) {$\overline{T}$} [clockwise from=20, sibling angle=30]
      child {node (child21) {$T$}
      (child2) -- (child21) node [fill=white,pos=0.5] {$1/2$}}
      child {node (child22) {$\overline{T}$}
      (child2) -- (child22) node [fill=white,pos=0.5] {$1/2$}}
   (root) -- (child2) node [fill=white,pos=0.5] {$1/2$}
   };
\end{tikzpicture}};
\end{tikzpicture}
\end{document}
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Arbre pondéré

Messagepar masiuxus » Jeudi 10 Juillet 2008, 19:05

Inutile de tout renommer ... en fait, en ajoutant "pos=0.5", ça suffit ! Merci :D
masiuxus
 

Re: Arbre pondéré

Messagepar Yacine1206 » Mercredi 26 Février 2014, 22:51

Bonjour,

Tout d'abord merci pour les arbres pondéré postés sur ce forum qui m'ont étés bien utiles pour mes projets sous TEX, je rencontres toutefois une difficulté je souhaites construire un arbre pondéré avec des cercles ( similaires à celui posté dans ce fil de discussion) mais en 3x3, si jamais vous pouviez me mettre un arbre de 3x3 en Tex vous me sauveriez la vie.

Cordialement
Yacine1206
Utilisateur
 
Messages: 6
Inscription: Mercredi 26 Février 2014, 22:25
Statut actuel: Post-bac | Licence

Re: Arbre pondéré

Messagepar pg » Jeudi 27 Février 2014, 08:38

Il suffit de mettre trois child par node :

arbre_trois_branches.png


Code: Tout sélectionner
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}[grow=right,level distance=2.5cm,
                    level 1/.style={sibling distance=3cm},
                    level 2/.style={sibling distance=1cm}]
\tikzstyle{edge from parent}=[->,draw]
\tikzstyle{arrete}=[fill=white,font=\tiny]
\tikzstyle{noeud}=[draw,ellipse]
\node[noeud] {$\Omega$}
   child {node[noeud] {$T$}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
   edge from parent node[arrete] {$1/3$}
   }
   child {node[noeud] {$T$}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
   edge from parent node[arrete] {$1/3$}
   }
   child {node[noeud] {$T$}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
      child {node[noeud] {$T$}
      edge from parent node[arrete] {$1/3$}}
   edge from parent node[arrete] {$1/3$}
   };
\end{tikzpicture}
\end{document}
pg
Modérateur
 
Messages: 2597
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Arbre pondéré

Messagepar Yacine1206 » Jeudi 27 Février 2014, 10:27

Merci beaucoup de votre aide, vraiment merci ça m'enlève une sacrée épine du pied, bonne continuation.
Yacine1206
Utilisateur
 
Messages: 6
Inscription: Mercredi 26 Février 2014, 22:25
Statut actuel: Post-bac | Licence


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ahrefs [Bot], Google [Bot] et 6 invités