Astuce :
Customiser matplotlib (faire son matplotlibrc)

Suite à une mésaventure liée à matplotlib sur le chan IRC #bioinfo-fr (mésaventure suite aux fameuses erreurs de display ; si vous voulez tout savoir : si on configure mal son matplotlib on peut générer des erreurs qui font qu'on obtient des images vides… voir la partie sur le backend plus tard :o), j'ai parlé de la joie qu'est d'avoir un matplotlibrc et à quel point ça simplifie la vie.

Et comme ça pourrait servir à d'autres, voici un petit article pour parler de fichiers de configuration de matplotlib !

Qu'est-ce qu'un matplotlibrc ?

Il s'agit tout simplement d'un fichier de configuration pour matplotlib (comme votre bashrc ), qui permet d'éviter de faire joujou avec les paramètres dynamiquement, de les garder au chaud d'un import à l'autre 😉

Vous avouerez que pour les histoires de backend (la source depuis laquelle vous faites appel à matplotlib, plus de détails ici) sur les serveurs sans serveur X (AKA sans interface graphique), et pour avoir un style cohérent d'une figure à l'autre (de sa thèse par exemple) c'est plutôt pratique !

 

Où est-ce que je range mon matplotlibrc ?

Alors c'est très simple, matplotlib va aller chercher un matplotlibrc à 4 endroits différents au moment de son chargement, et ce dans cet ordre :

  1. dans le fichier matplotlibrc  dans le dossier courant
  2. dans $MATPLOTLIB/matplotlibrc
  3. dans .config/matplotlib/matplotlibrc  (ou dans .matplotlib/matplotlibrc  si vous n'êtes pas sous Linux)
  4. dans /etc/matplotlibrc  si vous êtes sous Linux. Attention, ce fichier sera écrasé à chaque fois que vous ré-installerez matplotlib ! Ce n'est donc pas un endroit pérenne pour aller tripatouiller votre configuration de matplotlib.

Comment est-ce que je vois quel fichier de configuration est chargé ?

Il suffit d'exécuter dans votre shell python (ou encore mieux dans iPython3 !) les commandes suivantes :

 

Qu'est-ce que je mets dans mon matplotlibrc ?

Pour faire court (oui oui, il m'arrive de faire court ^_^) : toute la configuration de matplotlib que vous souhaitez conserver d'une fois à l'autre.

Je pense notamment au backend que vous utilisez, que ça soit chez vous, sur votre PC portable ou sur le serveur de calcul sans serveur X.

Pour cela, insérez tout simplement :

Et pour que le backend ait une solution de repli alternatif automatique en cas de conflit :

Quelques options cools :

Et là où la magie s'opère…

Oui parce que c'est bien beau toute cette tambouille interne, mais je vous ai promis des figures cohérentes tout au long de votre thèse ! :p

En fait, vous pouvez tout définir dans votre matplotlibrc : de l'aspect des lignes à l'aspect des boxplots, en passant par la fonte et à l'utilisation de LaTeX.

Plutôt que de vous faire une liste longue comme le bras de ce que vous pouvez faire comme customisation, je vous propose d'aller jeter un œil à ce dépôt git ! Vous y trouverez des démos pour plusieurs styles de matplotlibrc : du R-like, du ggplot-like… et comme nous naviguons dans le merveilleux monde des fichiers de configuration, sachez qu'il en existe plein d'autres (certains sont même sourcés dans le dépôt git que j'ai cité).

 

Et voilà, à votre éditeur de texte préféré et faites-vous un matplotlibrc 😉

 

Je remercie m4rsu pour l'idée de cette article, mes chères relectrices Clem_, Gwenaëlle, Estelle, et mon admin adoré Yoann M.

  • À propos de
  • Après une prépa BCPST et une licence de bio à l'ENS Cachan, j'ai suivi le master BIBS à l'Université Paris-Sud j'ai suivi des cours d'informatique à l'ENS Cachan. Je commence ma thèse entre INRIA Saclay et l'INRA Jouy-en-Josas.

Catégorie: Astuce | Tags: , ,

Un commentaire sur “Customiser matplotlib (faire son matplotlibrc)

  1. Petite précision utile : en utilisant \'Agg\', un \'pyplot.show()\' ne marchera plus car \'Agg\' est un backend non-interactif, il ne peut que générer des fichiers.
    Effet de bord à savoir surtout que matplotlib n\'envoie aucun message d\'erreur 😉

Laisser un commentaire