python latex arbre bernoulli

LaTeX et Python: créer un arbre de Bernoulli automatiquement

Comment créer automatiquement à l’aide de Python et de LaTeX un arbre de Bernoulli en probabilités ?

Je vais vous montrer l’utilisation d’une fonction Python que je viens d’écrire, et que les abonné·e·s trouveront en fin d’article.

LaTeX et Python: exemples d’arbres de Bernoulli

La fonction Python qui créée en LaTeX un arbre de Bernoulli

L’appel de la fonction nécessite obligatoirement deux paramètres: la hauteur de l’arbre et la probabilité du succès. Par exemple,

>>> bernoulli_tree(3,0.2)

va automatiquement créer un fichier \(\LaTeX\) puis le compiler, pour ensuite afficher le PDF:

Comme on peut le remarquer, les points décimaux ont été remplacés par une virgule.

Une arbre de Bernoulli avec des probabilités fractionnaires: l’option “fraction”

Si l’on souhaite que les probabilités s’affichent sous forme fractionnaire, on utilisera l’option “fraction”:

>>> bernoulli_tree(3,0.2,fraction=True,espv=0.7)

Remarquez ici la présence d’un autre paramètre : espv, qui permet d’espacer davantage les nœuds du dernier niveau afin que les fractions s’affichent correctement.

Si la probabilité du succès ne peut pas être écrite sous forme décimale, mais uniquement sous forme fractionnaire, on pourra écrire:

>>> bernoulli_tree(3,'1/3',fraction=True,espx=1,espv=0.8,espvinter=0.5)

Un arbre moins large: l’option espx

>>> bernoulli_tree(3,0.2,espx=1,espv=0.7,espvinter=0.5)

Remarquez ici la présence du paramètre espvinter qui désigne l’espace vertical entre les “groupes” de couples (succès,échec) au dernier niveau.

Par de nom à la racine

Si vous ne souhaitez pas que \(\Omega\) apparaisse à la racine, tapez:

>>> bernoulli_tree(3,'1/3',fraction=True,espx=1,espv=0.8,espvinter=0.5,root='')

Changer les styles

On peut changer les styles TiKZ de tous les objets de l’arbre (branches, nœuds et probabilités):

>>> bernoulli_tree(3,0.2,fraction=True,espv=1.1,espvinter=0.5,stylebranche='line width=1pt,color=blue!50!black',stylenoeud='color=red',styleproba='midway,circle,scale=.5,text=red,draw=red,fill=red!20',filename='arbre-bernoulli-06')

Ici, la seule limite est celle de votre imagination ! Vous pouvez utiliser tous les styles TiKZ que vous souhaitez pour personnaliser votre arbre. Alors, lâchez-vous !

Des fractions écrites “en ligne”

Jouer avec les espaces verticaux est quelques fois pénibles. Dans ce cas, on pourra utiliser la syntaxe suivante:

>>> bernoulli_tree(3,Fraction(3,7),filename='arbre-bernoulli-07')

La fonction Python qui permet de construire en LaTeX un arbre de Bernoulli

Les paramètres utilisés pour la fonction Python permettant de construire en LaTeX un arbre de Bernoulli

  • niveau : nombre entier désignant le niveau de l’arbre (nombre de répétitions de l’expérience de Bernoulli);
  • proba: nombre (float) ou chaîne de caractères (de la forme ‘p/q’) ou objet type Fraction(p,q)
  • succes = ‘S’: lettre désignant le succès. Par défaut, “S”
  • espv = 0.5: espace vertical entre les nœuds “succès/échec”
  • espvinter = 1: espace vertical (en cm) entre les blocs “succès/échec”
  • espx = 2: espace horizontal (en cm) entre chaque niveau
  • fraction = False: booléen pour signifier si les probabilités doivent être écrites sous forme fractionnaire ou non
  • root = ‘$\Omega$’: nom de la racine (syntaxe \(\LaTeX\) mathématique ou pas)
  • stylebranche = ”: style TiKZ des branches
  • stylenoeud = ”: style TiKZ des nœuds (les événements “succès” et “échecs”)
  • styleproba = ‘midway,fill=white,scale=.5’: style TiKZ des probabilités sur les branches
  • filename = ‘arbre’: nom du fichier à sauvegarder et à compiler

Les modules

  • ‘fraction’
    • >>> pip install fractions ou conda install fractions
  • ‘os’ et ‘os.path’ (pour manipulation système: sauvegarde, compilation)

Autres remarques

Il faut bien entendu au préalable avoir installé une distribution \(\LaTeX\).

La fonction Python

Partie réservée aux abonné·e·s de ce site.
Pour un abonnement à vie (10 €), allez dans la boutique.

Laisser un commentaire