Historique #

Noter

Le texte d'introduction suivant a été écrit en 2008 par John D. Hunter (1968-2012), l'auteur original de Matplotlib.

Matplotlib est une bibliothèque permettant de créer des tracés 2D de tableaux en Python . Bien qu'il ait ses origines dans l'émulation des commandes graphiques MATLAB, il est indépendant de MATLAB et peut être utilisé de manière Pythonic, orientée objet. Bien que Matplotlib soit écrit principalement en Python pur, il fait un usage intensif de NumPy et d'autres codes d'extension pour fournir de bonnes performances même pour les grands tableaux.

Matplotlib est conçu avec la philosophie que vous devriez être capable de créer des tracés simples avec seulement quelques commandes, ou une seule ! Si vous voulez voir un histogramme de vos données, vous ne devriez pas avoir besoin d'instancier des objets, d'appeler des méthodes, de définir des propriétés, etc. ça devrait juste marcher.

Pendant des années, j'ai utilisé MATLAB exclusivement pour l'analyse et la visualisation de données. MATLAB excelle dans la création de jolis tracés faciles. Lorsque j'ai commencé à travailler avec des données EEG, j'ai constaté que j'avais besoin d'écrire des applications pour interagir avec mes données et j'ai développé une application d'analyse EEG dans MATLAB. Au fur et à mesure que l'application gagnait en complexité, interagissant avec des bases de données, des serveurs http, manipulant des structures de données complexes, j'ai commencé à lutter contre les limites de MATLAB en tant que langage de programmation et j'ai décidé de recommencer en Python. Python compense largement toutes les lacunes de MATLAB en tant que langage de programmation, mais j'avais du mal à trouver un package de traçage 2D (pour 3D VTK dépasse largement tous mes besoins).

Lorsque je suis parti à la recherche d'un package de traçage Python, j'avais plusieurs exigences :

  • Les parcelles doivent être superbes - qualité de publication. Une exigence importante pour moi est que le texte soit beau (anticrénelé, etc.)

  • Sortie postscript à inclure dans les documents TeX

  • Intégrable dans une interface utilisateur graphique pour le développement d'applications

  • Le code doit être suffisamment simple pour que je puisse le comprendre et l'étendre

  • Faire des tracés devrait être facile

Ne trouvant aucun package qui me convenait parfaitement, j'ai fait ce que ferait n'importe quel programmeur Python qui se respecte : retrousser mes manches et plonger dedans. fait très bien. Cela avait l'avantage supplémentaire que de nombreuses personnes ont une grande expérience de MATLAB et peuvent donc rapidement se mettre au traçage à la vapeur en python. Du point de vue d'un développeur, avoir une interface utilisateur fixe (l'interface pylab) a été très utile, car les entrailles de la base de code peuvent être repensées sans affecter le code utilisateur.

Le code Matplotlib est conceptuellement divisé en trois parties : l' interface pylab est l'ensemble des fonctions fournies par pylabqui permettent à l'utilisateur de créer des tracés avec un code assez similaire au code générateur de figures MATLAB ( tutoriel Pyplot ). L' interface Matplotlib ou l' API Matplotlib est l'ensemble des classes qui font le gros du travail, créant et gérant des figures, du texte, des lignes, des tracés, etc. ( tutoriel d'artiste ). Il s'agit d'une interface abstraite qui ne sait rien de la sortie. Les backends sont des périphériques de dessin dépendants de l'appareil, c'est-à-dire des moteurs de rendu, qui transforment la représentation frontale en copie papier ou en périphérique d'affichage ( Qu'est-ce qu'un backend ?). Exemples de backend : PS crée une copie papier PostScript® , SVG crée une copie papier Scalable Vector Graphics , Agg crée une sortie PNG à l'aide de la bibliothèque Anti-Grain Geometry de haute qualité fournie avec Matplotlib, GTK intègre Matplotlib dans une application Gtk+ , GTKAgg utilise le moteur de rendu Anti-Grain pour créer une figure et l'intégrer dans une application Gtk+, et ainsi de suite pour PDF , WxWidgets , Tkinter , etc.

Matplotlib est utilisé par de nombreuses personnes dans de nombreux contextes différents. Certaines personnes souhaitent générer automatiquement des fichiers PostScript à envoyer à un imprimeur ou à des éditeurs. D'autres déploient Matplotlib sur un serveur d'applications Web pour générer une sortie PNG à inclure dans des pages Web générées dynamiquement. Certains utilisent Matplotlib de manière interactive à partir du shell Python dans Tkinter sous Windows. Mon utilisation principale est d'intégrer Matplotlib dans une application Gtk+ EEG qui s'exécute sous Windows, Linux et Macintosh OS X.


Logo original de Matplotlib (2003 -- 2008).

( Code source , png )

../../_images/histoire-1.png

Logo Matplotlib (2008 - 2015).

( Code source , png )

../../_images/histoire-2.png