Concernant le modèle arbres.mod, pour un arbre de probabilités, je sais qu'il est possible d'écrire les valeurs des probabilités horizontalement :
- Code: Tout sélectionner
labeloriente=0
Je n'ai pas trouvé dans la doc le moyen régler la position du label par rapport à la branche.
Par exemple, mettre $ p(\overline{C}) $ en dessous de la branche. Voici mon arbre :
- Code: Tout sélectionner
TeXgraph#
{version 1.98}
Cmd
Window(-0.25+0.25*i, 4.25-3.25*i, 1+i);
Margin(0, 0, 0, 0);
Border(0);
[OriginalCoord(1), IdMatrix()];
[theta:=0.5236, phi:=1.0472, IdMatrix3D(), ModelView(ortho)];
[GrayScale(0), ComptGraph:=0];
Var
arbrever = 0.1;
N0 = -1.5*i;
arbre0 = [0,1,2];
Ajuster = 1;
Dir1 = 1;
Dir2 = -i;
Export = 0;
Index = [1,1,1+i,1+i,1+2*i,1+2*i];
treelabelsep = 0.1;
treesep = 0.75;
nodeep = 0.25;
treeheight = 2;
niveau = 2;
linetype = 0;
armpos = 0.2;
treelabelpos = 0.5;
labeloriente = 0;
treeposition = [2.5,3.5,4];
MouseVer = 0.1;
N1 = 2-0.5*i;
N2 = 2-2.5*i;
arbre1 = [1,3,4];
N3 = 4;
N4 = 4-i;
arbre2 = [2,5,6];
N5 = 4-2*i;
N6 = 4-3*i;
Include
"Mouse.mac";
"Arbres.mac";
Mac
drawAline = [ { drawAline(affixe depart, vecteur direction, indice1, indice2): on relie le node indice1 (son affixe est %1) au node indice2 (la direction est %2), les attributs sont ceux de l'élément graphique arbre}
$dep:=%1, $dir:=%2,
$u:=Re(dir*bar(Dir1))*Dir1, {composante du vecteur direction suivant Dir1}
$v:=Re(dir*bar(Dir2))*Dir2, {composante du vecteur direction suivant Dir2}
if linetype=0 {segment de droite}
then Ligne([dep,dep+dir],0)
elif linetype=1 {segment à un coude}
then u:=u*armpos, Ligne( [dep, dep+u+v, dep+dir],0)
elif linetype=2 {segment à 2 coudes}
then u:=u*armpos, Ligne( [dep, dep+u, dep+dir-u, dep+dir],0)
elif linetype=3 {courbe de bézier}
then Bezier(dep, dep+u/2, dep+u/2+v, dep+dir)
elif linetype=4 {tube}
then oldwidth:=Width, Width:=Width*3,
Ligne([dep,dep+dir],0), $oldcolor:=Color,
Color:=FillColor, Width:=oldwidth,
Ligne([dep,dep+dir],0), Color:=oldcolor
fi
];
drawAnode = [{drawAnode(indice): on dessine le node indice %1, les attributs sont ceux de l'élément graphique styleNodes}
{Eval( ["Cercle(N",%1, ",", nodeep, ")" ]),}
Eval( ["Label( N", %1, ", \node", %1, ")" ])
];
drawAlabel = [ $dep:=%1, $dir:=%2,
if (linetype=0) Or (linetype=4) then $v:=dir {baton ou tube}
elif (linetype=1) then {segment à 1 coude}
$v:=Re(dir*bar(Dir1))*Dir1, $w:=Re(dir*bar(Dir2))*Dir2,
dep:=dep+v*armpos+w, v:=v*(1-armpos)
elif (linetype=2) then {segment à 2 coudes}
$v:=Re(dir*bar(Dir1))*Dir1,
dep:=dep+dir-v*armpos, v:=v*armpos
elif linetype=3 then {bézier}
$v:=Re(dir*bar(Dir1))*Dir1/2, $w:=Re(dir*bar(Dir2))*Dir2,
dep:=dep+v/2, v:= v+w
fi,
$u:=ortho(v), $angle:= arg(v)*180/pi,
if labeloriente then
if treelabelpos=0.5 then $pos:=0 {centré}
elif treelabelpos<0.5 then pos:=left
else pos:=right
fi,
if Re(v)>=0
then LabelAngle:= angle else LabelAngle:= 180+angle,u:=-u
fi,
if ((angle>=0) And (Im(Dir1)=0)) Or ((angle<0) And (Re(Dir1)=0))
then LabelStyle:=bottom+pos, Label(dep+v*treelabelpos+treelabelsep*u,%3)
else LabelStyle:=top+pos, Label(dep+v*treelabelpos-treelabelsep*u,%3)
fi
else {labels horizontaux}
if Im(v)<0 then pos:=left elif Im(v)>0 then pos:=right else pos:=0 fi,
if Re(v)<0 then LabelStyle:=top+pos
elif Re(v)>0 then LabelStyle:=bottom+pos
else LabelStyle:=pos
fi,
Label(dep+v*treelabelpos+treelabelsep*u,%3)
fi
];
node1 = "$C$";
lab1 = "$0,8$";
node2 = "$\overline{C}$";
lab2 = "$0,2$";
node3 = "$N$";
lab3 = "$0,4$";
node4 = "$\overline{N}$";
lab4 = "$0,6$";
node5 = "$N$";
lab5 = "$0,8$";
node6 = "$\overline{N}$";
lab6 = "$0,2$";
Init = [C1:=0, C2:=0, C3:=0, C4:=0, C5:=0, C6:=0, C7:=0, C8:=0, C9:=0, C10:=0, C11:=0, C12:=0,
C13:=0, C14:=0, C15:=0, C16:=0, NbCtrlDot:=0, CtrlDot:=ctrldot(), LaListe:=laliste()
, DotState:=dotstate(), ShowRef:=0, ShowLabel:=0, SLabelEnCours:=0, flechage:=fleches()
, ReCalc() ];
Cmd [IsVisible:=0,tMin:=-5,tMax:=5,DotScale:=1+i];
Graph repere = [LineStyle:=0, LabelSize:=footnotesize,
FillStyle:=none, Width:=0, Color:=Rgb(0.75,0.75,0.75),
Grille(0,(1+i)/GridNbDiv), Color:=0, Axes(Xmin+i*Ymin,1+i)];
Cmd [IsVisible:=1,FillColor:=1];
Graph etat = Nil;
Cmd [LineStyle:=-1,FillStyle:=1,FillColor:=16777215,tMin:=-2.75,tMax:=2.75,LabelStyle:=16];
Graph styleNodes = 1/0;
Cmd [Width:=8,LineStyle:=0,FillStyle:=0,FillColor:=8366847,tMin:=-5,tMax:=5,DotStyle:=1,LabelStyle:=0,LabelSize:=2];
Graph arbre = Dessiner();
Cmd [FillColor:=16777215];
Graph indices = [
if Export=0 then
Color:=red,
drawIndices(0),
Label(N0-0.25*i/Yscale, "0")
fi
];
Merci pour ta réponse.
Joffrey