80 % des Data Scientists opérant dans l’écosystème Python se servent de Matplotlib pour la visualisation graphiques des données. Un tel engouement est-il justifié ? Et quelles sont les alternatives ?


au sommaire


    Bibliothèque du langage PythonPython, Matplotlib est en mesure de représenter des données sous forme graphique (ce que l'on appelle en anglais des plots) : courbes, histogrammes, nuagesnuages de points, cartes... 

    Habituellement, si l'on évoque la création de graphiques à partir de données, la  référence à Excel vient spontanément à l'esprit. Toutefois, la différence essentielle réside dans le facteur d'échelle. Python est en mesure d'analyser des bases de données de millions d'entrées et Matplotlib pourra en extraire une substantique moelle sous forme de graphes.

    Pour mémoire, Python est un langage particulièrement prisé par les programmeurs en raison de sa facilité d'emploi mais aussi de sa versatilité. Il peut servir aussi bien à réaliser des services Web - le site YoutubeYoutube.com a été réalisé à partir du langage Python - que d'aider à gérer l'administration de serveurs, favoriser la création d'applications d’Intelligence Artificielle ou servir d'outil pour la Data Science.

    La page qui présente la bibliothèque Matplotlib sur le site Github, plate-forme collaborative dédiée aux programmeurs. © Github
    La page qui présente la bibliothèque Matplotlib sur le site Github, plate-forme collaborative dédiée aux programmeurs. © Github

    Comment a été créé Matplotlib ?

    Page d'hommage à John Hunter, titulaire d’un doctorat en neurobiologie, réalisée par l’Université de Princeton © Princeton University
    Page d'hommage à John Hunter, titulaire d’un doctorat en neurobiologie, réalisée par l’Université de Princeton © Princeton University

    Matplotlib est un projet Open Source et collaboratif. Il est né de l'initiative de John Hunter en 2002. Le point original est que Hunter n'était pas un programmeur mais un chercheur en neurobiologie.  C'est dans ce cadre qu'il a étudié le langage Python et a développé une bibliothèque initialement dédiée à la représentation graphique de données issues de capteurscapteurs, dans le cadre de ses propres recherches sur l'épilepsieépilepsie. Par la suite, l'un des facteurs qui l'a rendu fier est que l'usage de Matplotlib par la NASANASA a contribué à l'atterrissage en douceur des véhicules RoverRover d'exploration sur le sol de Mars, en janvier 2004. Hunter est décédé en 2012, mais une communauté de développeurs a pris le relais. Les releases (versions) régulières du code peuvent être consultées sur les pages Github de cette bibliothèque.

    La liste des contributeurs au projet Matplotlib est visible sur le site Github. Nous voyons ici que le pic des contributions (plus de 100) s’est produit à la fin 2018. © Github.com
    La liste des contributeurs au projet Matplotlib est visible sur le site Github. Nous voyons ici que le pic des contributions (plus de 100) s’est produit à la fin 2018. © Github.com

    Comment fonctionne Matplotlib ?

    L'usage de Python est orienté vers l'entrée de requêtes suivies de l'affichage d'une réponse. Matplotlib opère à partir d'une même interface - la plus utilisée étant celui de Jupyter - mais produit les résultats demandés sous forme graphique. Le code de Matplotlib est réellement simple à utiliser : il suffit de quelques requêtes explicites en Python pour obtenir ses premiers graphes.

    Il reste que, à la base d'un graphique réalisé sous Matplotlib, nous avons, inévitablement une source de données. Et ces sources d'informations peuvent être particulièrement volumineuses - imaginons par exemple qu'il soit nécessaire de traiter les données recueillies au fil du temps par des dizaines de milliers de capteurs disséminésdisséminés dans le monde. Ou bien encore d'explorer une base de données comportant des millions d'entrées relatives aux usagers d'un service. Il faudrait en premier lieu extraire de ce vaste réservoir quelques données statistiques (par exemple, une moyenne de revenus par ville d'Europe) et ce travail devra être réalisé au préalable au moyen d'une bibliothèque telle que Python Pandas.

    Bref, pour un Data ScientistData Scientist, les données sont une matièrematière brute qu'il va falloir apprivoiser. Or, le souci général, c'est qu'il est généralement aux prises  avec une véritable avalancheavalanche d'informations. Ainsi donc, si l'on souhaite se servir de Matplotlib dans les métiers du Big Data, il ne sera généralement pas possible de se limiter à la connaissance des requêtes de cette bibliothèque.  Un usage courant serait l'évolution du prix d'un article diffusé dans les pays francophones, au fil des mois et années. Il nécessiterait probablement l'extraction et la synthèse de ces informations précises au sein d'une base de données couvrant des centaines de villes de France, de Belgique ou de la Suisse. Autant de fonctions que Pandas pourra accomplir et donc, une maîtrise de cette autre bibliothèque sera nécessaire en vue d'effectuer ce travail préalable à la représentation graphique via Matplotlib. Il sera parfois également utile d'acquérir une maîtrise d'un package de Python appelé Numpy et dédié au calcul scientifique.

    Représentation des températures à la surface du sol de la Terre à partir de données de la NASA. © binder.org
    Représentation des températures à la surface du sol de la Terre à partir de données de la NASA. © binder.org

    À quoi sert Matplotlib ?

    Nous l'avons vu, Matplotlib a pour mission de représenter les  données sous une forme visuelle. Et  nous connaissons tous l'antique adage comme quoi une image vaudrait mille mots. En Data Science, on parle de « DataViz ». Dans la pratique, une visualisation sous forme graphique est en mesure de susciter des intuitions, de la prédiction. Ainsi, une agence de location de logement pourra repérer à quelle gamme de prix un 3 pièces situé à un certain étage, disposant d'un certain facteur d'ensoleillement a le plus de chance de partir rapidement dans un centre ville particulier. La Dataviz peut également aider à la détection de données douteuses dans un réservoir d'informations. Ainsi, un Data Scientist opérant pour le compte d'un réseau socialréseau social tel que FacebookFacebook pourrait repérer visuellement l'usage de clics frauduleux sur le bouton J'aime opérés en massemasse à l'aide de robotsrobots logicielslogiciels, par l'apparition d'un pic inhabituel. Il sera alors en mesure de vérifier d'où viennent ces clics et décider de ne pas comptabiliser lesdits clics comme authentiques.

    L'analyse de millions d'informations peut faire ressortir des faits totalement inattendus et qu'il pourra être bon d'exploiter. Il va par exemple apparaître que les consommateurs type d'un dessert au lait de coco en pot de taille géante sont des pères de famille de 35 à 44 ans possédant par ailleurs un véhicule électrique alors qu'aucun facteur logique ne semble expliquer pourquoi !

    La  représentation de tendances, de proportions, de données statistiques aide à la génération de rapports scientifiques ou commerciaux.

     

    Qui utilise Matplotlib ?

    Matplotlib est une bibliothèque populaire : ses utilisateurs se comptent par millions - 11 millions recensés en novembre 2022 selon Github.

    Initialement Matplotlib a été mis à contribution dans le milieu académique, dans la R&D liée aux sciences exploitant des données numériquesnumériques (biologie, recherche médicale...). A présent, son usage s'est diversifié et cet outil a été adopté par des Data Scientists de tous domaines, notamment dans le monde des affaires ou dans le secteur du journalisme. Quiconque a un besoin d'analyse des données au sein d'une grande entreprise comme dans une startup peut être tenté d'utiliser Matplotlib.

    Il ne faut que quelques jours ou semaines à un néophyte pour maîtriser les bases ouvrant à un usage pratique de Matplotlib. © matplotlib.org
    Il ne faut que quelques jours ou semaines à un néophyte pour maîtriser les bases ouvrant à un usage pratique de Matplotlib. © matplotlib.org

    Quels sont les avantages et les inconvénients de Matplotlib ?

    L'avantage essentiel de Matplotlib est ce que cette bibliothèque couvre énormément de visualisations différentes, tout en offrant de la souplesse et du contrôle sur la représentation finale. Une vaste galerie de modèles est accessible depuis matplotlib.org : il suffit de faire son choix et de s'inspirer des exemples  de code proposés.

    Autre point : Matplotlib est bien intégré dans l'environnement Python et profite avec élégance des autres outils de cet écosystèmeécosystème. De plus, étant Open Source, Matplotlib  est très bien documenté, et bien évidemment, librement accessible à tous gratuitement.

    Toutefois, comme nous l'avons vu plus haut, l'usage de Matplotlib suppose d'acquérir une  connaissance pratique du langage Python, de son environnement de travail, mais aussi d'autres bibliothèques telles que Pandas ou Numpy afin d'opérer un pré-traitement intelligent des données et donc, la formation complète d'un Data Scientist à ces divers outils peut prendre plusieurs mois.

    On pourra également déplorer que les capacités d'interaction de Matplotlib soient  relativement limitées en comparaison à certaines alternatives. Un exemple : on sélectionne une partie d'une carte du monde et aussitôt un histogramme relatif à cette région est actualisé. Si l'on est friand de telles interactions, une bibliothèque comme Plotly sera plus appropriée.

    Matplotlib propose une gamme très étendue d’outils de représentation graphique, qui inclut des visualisations 3D. © matplotlib.org
    Matplotlib propose une gamme très étendue d’outils de représentation graphique, qui inclut des visualisations 3D. © matplotlib.org

    Comment apprendre à se servir de Matplotlib ?

    Comment utiliser Matplotlib ? Vaste question... Si l'on est à l'aise avec l'anglais, on trouve des tutorielstutoriels étendus sur le site officiel dédié à cette bibliothèque, soit matplotlib.org. Par ailleurs, au sein des cursus de Data Science intégrant l'apprentissage de Python, il est courant de trouver des modules dédiés à la bibliothèque  Matplotlib.

    Quels sont les outils similaires à Matplotlib ?

    Au sein de l'environnement Python, l'alternative principale à Matplotlib est la bibliothèque Plotly.js qui, comme nous l'avons vu, offre une meilleure interactivité, si tant est que l'on se sert d'un navigateurnavigateur comme outil de visualisation.

    Toujours au sein de l'environnement Python, il peut être bon de s'intéresser aux offres suivantes :

    • Tableau, qui met en avant ses outils de Business IntelligenceBusiness Intelligence sur des milliards d'informations,
    • MATLAB qui comme son nom l'indique, est approprié aux calculs numériques, et qui a donc notamment été adopté par le fabricant de microprocesseursmicroprocesseurs AMD,
    • Bokeh, une bibliothèque de visualisation interactive adaptée aux navigateurs Web récents.

    Le concurrent principal de Matplotlib est lié à l'écosystème du langage de programmation R, qui dispose lui aussi de bibliothèques de visualisation performantes, notamment Esquisse, ggplot2, Lattice, Rgl... Une partie de la communauté des Data Scientists préfère donc ces outils liés à R.