Seaborn est encore peu connu mais il a le vent en poupe. En réalité, si vous opérez dans l'analyse de données, il va rapidement vous paraître incontournable. Mieux encore, se former à son usage va sembler indispensable. La raison ? À partir de quelques instructions concises, Seaborn peut produire des graphiques informatifs, très utiles et de bel aspect. Alors, comment résister ?


au sommaire


    Si vous êtes un data scientist, il est probable que vous utilisiez Numpy pour afficher et traiter vos tableaux de données. Par nature, les bases de données intègrent énormément d'informations et donc, une bibliothèque telle que Numpy pour Python se révèle supérieurement utile pour ce qui est de faire ressortir des tendances, des statistiques, des situations méritant notre attention.

    Cela étant dit, il va de soi qu'un bon graphique sera toujours plus parlant qu'un tableau synthétique. Une courbe, un histogramme, va pouvoir faire ressortir du premier coup d'œil un phénomène sur lequel l'on cherche à attirer l'attention. L'affaire est entendue : en matière de représentation graphique sous Python, vous savez aussi qu'il est possible de recourir à la bibliothèque Matplotlib pour tracer les graphiques de son choix, sans limite potentielle.

    Pourtant, depuis 2020 environ, une autre solution est régulièrement évoquée : Seaborn, une bibliothèque Python pour la datavisualisation. Certes, Seaborn est bien moins connu que Matplotlib et d'ailleurs, on trouve fort peu d'informations sur son usage effectif, par exemple, on ignore s'il a été adopté par des entreprises majeures. Son propre créateur semble peu soucieux de promouvoir ces aspects liés à une potentielle popularité de Seaborn. En réalité, c'est depuis peu que l'on observe une montée de cote majeure pour Seaborn.

    Pour faire simple : une fois que l'on essayé Seaborn, il paraît souvent difficile de revenir à Matplotlib !

     

    Seaborn versus Matplotlib

    Question : pourquoi donc gagnerait-on à utiliser Seaborn plutôt que Matplotlib ? Comme nous allons le voir, la réponse est multiple.

     

     

    Matplotlib n'est pas simple d'usage

    Il serait malaisé de mettre en doute la puissance de Matplotlib. Pourtant, force est de la reconnaître : son usage n'est pas toujours simple.  Le souci vient avant tout de la versatilité de la bibliothèque Python Matplotlib qui offre un nombre presque incalculable d'options en tous genres. Parfois, on peine à obtenir le résultat souhaité. On suit un tutoriel et surprise : à l'arrivée, le graphisme obtenu n'est pas conforme à ce que l'on aurait dû obtenir.  La raison est souvent liée à une très légère erreur dans la syntaxe de Matplotlib.

    Un exemple de graphique en contour réalisé avec Matplotlib. © Google Colab
    Un exemple de graphique en contour réalisé avec Matplotlib. © Google Colab

    Matplotlib : deux approches

    Si Matplotlib peut sembler intimidant et même déconcertant, c'est aussi parce qu'il repose sur deux approches possibles,

    • programmation orientée objet
    • mise à contribution des fonctions de Matplotlib.

    Chacune de ces approches va reposer sur une syntaxe qui lui est propre, mais avouons-le, pour le novice qui aborde cet outil, il y a parfois de quoi y perdre son latin puisque nous avons affaire à deux types de formulations différentes pour arriver à un même résultat.

    Sur un forum tel que Stack Overflow, les questions relatives  à Matplotlib abondent, laissant à entendre que son usage n'est pas jugé simple par de nombreux usagers. © Stack Overflow
    Sur un forum tel que Stack Overflow, les questions relatives  à Matplotlib abondent, laissant à entendre que son usage n'est pas jugé simple par de nombreux usagers. © Stack Overflow

    Les courbes de Matplotlib ne sont pas toujours pratiques et esthétiques

    L'autre reproche parfois adressé à Matplotlib, c'est que par défaut, un grand nombre de représentations manquent de grâce. Pour les rendre attrayantes mais aussi utiles, il est nécessaire de fouiller dans les paramètres, d'intervenir sur l'épaisseur des traits, mettre à contribution une "color map" (carte de couleurs), etc. Bref, obtenir un beau résultat implique souvent d'écrire des lignes et des lignes de code. Est-ce réellement la tâche attendue d'un data scientist ? Ne serait-il pas préférable qu'il exploite son temps à produire le graphique désiré plutôt qu'à batailler avec autant de paramètres ?

     

    Seaborn est arrivé…

    C'est en partant de telles réflexions qu'un dénommé Michael Waskom, chercheur en analyse de données, a réalisé Seaborn. Waskom s'est appuyé sur la librairie Matplotlib mais aussi sur Pandas, qui, rappelons-le, est dédiée à l'analyse de données sous Python. Seaborn a été rendu public en 2012.

    S'il fallait résumer la force de Seaborn en une phrase, ce pourrait être celle-ci :

    Seaborn est en mesure de réaliser en une ligne de code ce qui en prendrait une dizaine sous Matplotlib !

    La photo présente sur le compte Twitter de Michael Waskom, le créateur de la bibliothèque Seaborn pour Python. © Michael Waskom
    La photo présente sur le compte Twitter de Michael Waskom, le créateur de la bibliothèque Seaborn pour Python. © Michael Waskom

    Comment fonctionne Seaborn

    L'analyse du fichier du Titanic à l'aide de la fonction heatmap propre à Seaborn. Ell e fait par exemple ressortir sur sa 1ère ligne quels types de passagers ont survécu en fonction de critères tels que leur âge, la classe de leur billet, le tarif déboursé… © Seaborn / Google Colab
    L'analyse du fichier du Titanic à l'aide de la fonction heatmap propre à Seaborn. Ell e fait par exemple ressortir sur sa 1ère ligne quels types de passagers ont survécu en fonction de critères tels que leur âge, la classe de leur billet, le tarif déboursé… © Seaborn / Google Colab

     

    Oui… Autant le dire : si l'on s'est  frotté à Matplotlib, la facilité avec laquelle Seaborn peut produire des graphiques est stupéfiante. C'est notamment le cas de la fonction pairplot qui propose plusieurs représentations possibles d'un tableau de données. A peine l'instruction correspondante a-t-elle été formulée que ces multiples graphiques apparaissent, apportant au passage des informations utiles des diverses courbes observées.

    Autre point fort : toutes les fonctions – ou presque - de Seaborn ont une forme standard et donc, on peut réutiliser aisément le code utilisé pour l'une sur une autre. Si vous avez derrière vous des semaines ou mois de pratique de Matplotlib, gageons qu'une telle opportunité a de quoi surprendre et donner envie d'en savoir plus.

    Il a suffi d'une instruction mettant à profit la fonction pairplot (qui montre les relations entre deux variables) pour que Seaborn nous propose tout un éventail de graphiques relatifs aux données analysées. © Seaborn
    Il a suffi d'une instruction mettant à profit la fonction pairplot (qui montre les relations entre deux variables) pour que Seaborn nous propose tout un éventail de graphiques relatifs aux données analysées. © Seaborn

    Comment apprendre à utiliser Seaborn

    Puisqu'il en est ainsi, comment peut-on apprendre à maîtriser Seaborn ? Si vous parlez bien anglais, alors, vous pouvez suivre le tutorial proposé sur le site officiel de cette bibliothèque.  Vous pourrez alors vous exercer sur les exemples de code proposés. 

    Quelle que soit la solution adoptée, il importe de prendre le temps de bien pratiquer chaque exemple de telles formations et d'en assimiler patiemment les concepts et la syntaxe. Comme bien souvent avec Python, le moindre petit détail peut entraîner une erreur et il n'est pas toujours évident de la repérer du premier coup d'œil. Ce que Seaborn est en mesure de faire gagner en productivité mérite amplement les efforts d'apprentissage induits.

    Point important : une bonne maîtrise de Seaborn suppose idéalement d'avoir acquis une certaine maîtrise de bibliothèques telles que Numpy et Pandas.

    Le site officiel de Seaborn affiche les diverses galeries de graphiques qu'il est possible de produire – seule une petite sélection apparaît sur cette image. © Seaborn
    Le site officiel de Seaborn affiche les diverses galeries de graphiques qu'il est possible de produire – seule une petite sélection apparaît sur cette image. © Seaborn

    Seaborn est-il la solution à tout ?

    Vous vous en doutez probablement : Seaborn n'est pourtant pas une solution universelle. Il existe certaines situations dans lesquelles, Matplotlib sera plus approprié. On pense notamment aux applications d'ingénierie. Et si l'on est à la recherche d'un graphique spécialisé et ultra personnalisé, il y a plus de chance que vous trouviez votre bonheur dans Matplotlib. Bref, Seaborn est avant tout adapté à la représentation de données statistiques.

    Cela étant dit, certains utilisateurs de Python favorisent un troisième choix : Plotly Express, dont la facilité d'usage est similaire et qui propose de nombreux exemples de graphiques dans sa documentation.

    Analogue à Seaborn pour l'efficacité du code, Plotly propose un bel éventail de graphiques. © Plotly
    Analogue à Seaborn pour l'efficacité du code, Plotly propose un bel éventail de graphiques. © Plotly