Je ne sais pas pourquoi celui-ci a été fermé. Il n'invite pas les guerres de flammes ou les opinions, et a un ensemble de réponses claires: il n'y a qu'une poignée de bibliothèques de traçage Python.
Alex B
7
Pourquoi est-ce fermé? C'est une question utile. Quoi qu'il en soit, ma recommandation est de pip search plotregarder ce qui se passe. J'ai découvert pygal en faisant cela, et pygal a fière allure.
Mark E. Haase
Il convient également de noter que cette question vient en tête d'une recherche Google pour "charting python" - raison suffisante pour l'ouvrir à nouveau.
George Lund
Cette question est utile, elle ne doit pas être fermée. Les autres options incluent bokeh et PyX
atomh33ls
Réponses:
50
Je suis celui qui soutient CairoPlot et je suis très fier qu'il soit venu ici. Matplotlib est sûrement génial, mais je pense que CairoPlot est plus beau. Donc, pour les présentations et les sites Web, c'est un très bon choix.
Aujourd'hui, j'ai publié la version 1.1. Si vous êtes intéressé, vérifiez-le sur CairoPlot v1.1
EDIT: Après un hiver long et froid, CairoPlot est à nouveau développé. Découvrez la nouvelle version sur GitHub .
Cairoplot ne fonctionne vraiment pas très bien pour de grandes quantités de données (corrigez-moi si je me trompe). Vous ne pouvez pas ajouter d'étiquettes à l'axe pour résumer les hlabels ou vlabels. Je ne peux pas voir de toute façon tracer plusieurs lignes sur un graphique ou avoir un contrôle sur les couleurs utilisées. Je pourrais pirater le script ... passer à matplotlib ...
Jon
Tout le monde devrait ignorer le commentaire de Jon, il est très facile d'étiqueter l'axe et de définir les couleurs utilisées ... Consultez tests.py pour des exemples. Quoi qu'il en soit, merci pour une belle bibliothèque.
Daniel Magnusson
38
Pour le travail interactif, Matplotlib est la norme mature. Il fournit une API de style OO ainsi qu'une API interactive de style Matlab.
Chaco est une bibliothèque de tracés plus moderne des gens d'Enthought. Il utilise la bibliothèque de dessins vectoriels Kiva d'Enthought et ne fonctionne actuellement qu'avec Wx et Qt avec OpenGL (Matplotlib a des backends pour Tk, Qt, Wx, Cocoa et de nombreux types d'images tels que PDF, EPS, PNG, etc.). Les principaux avantages de Chaco sont sa rapidité par rapport à Matplotlib et son intégration avec l'API Traits d'Enthought pour les applications interactives.
Je suis d'accord que de toutes les API - matplotlib semble être en effet la plus mature et la plus riche en fonctionnalités (et est également toujours prise en charge et en cours de développement). Allez simplement dans sa "galerie" pour voir divers exemples (avec le code source correspondant): matplotlib.sourceforge.net/gallery.html . Cependant, je dirais que son API est, eh bien ..., compliquée - les noms de méthodes me rendent fou :) En parlant d'exemples "compliqués" et simples - ce billet de blog m'a beaucoup aidé à démarrer avec matplotlib: shreevatsa.wordpress .com / 2010/03/07 / matplotlib-tutorial
Timur
Désolé, je dois également ajouter que matplotlib n'est pas seulement interactif - vous pouvez en fait enregistrer un graphique / un graphique dans un fichier. Par ex. PNG, PDF ou SVG.
Timur
18
Vous pouvez également utiliser pygooglechart , qui utilise l' API Google Chart . Ce n'est pas quelque chose que vous voudrez toujours utiliser, mais si vous voulez un petit nombre de bons graphiques simples et toujours en ligne, et surtout si vous affichez de toute façon dans un navigateur, c'est un bon choix.
Un mot d'avertissement, les graphiques que Google vous permet de créer sont plutôt limités en taille (largeur * hauteur <= 300 000 pixels). En outre, Google Charts (et non l'API Python) s'étouffera avec des ensembles de données de taille même modeste. Sinon, ils sont super.
Vous n'avez pas mentionné le format de sortie dont vous avez besoin, mais reportlab est bon pour créer des graphiques au format pdf et bitmap (par exemple png).
Voici un exemple simple de graphique à barres au format png et pdf:
Si vous obtenez une exception "RenderPMError: SetFont (Times-Roman) ne peut-il pas manquer les fichiers T1?" (comme je l'ai obtenu) sur d.save dans le code ci-dessus - La solution consiste à télécharger et à extraire reportlab.org/ftp/fonts/pfbfer.zip dans le répertoire reportlabs / fornts
Oui, j'ai utilisé dot_line_plot () dans les outils de reporting / statistiques. C'est joli et facile. Voir la meilleure réponse de Rodrigo à propos de Matplotlib et CairoPlot. J'utilise également Matplotlib. En fait, je l'utilise en ce moment.
elmarco
Des personnes étranges n'ont pas saisi votre réponse, mais la réponse actuellement la plus votée.
pihentagy
Je pense que cela obtiendrait plus de votes positifs s'il y avait un exemple minimal. Votre réponse deviendra inutile lorsque le lien sera mort.
Martin Thoma
merci, le blog a déjà beaucoup d'informations. et l'auteur lui-même a répondu ici avec plus de détails plus tard.
elmarco
6
J'ai utilisé pychart et j'ai pensé que c'était très simple.
Tout est en python natif et n'a pas de bus de dépendances. Je suis sûr que matplotlib est charmant, mais je téléchargerais et installerais pendant des jours et je veux juste un graphique à barres rouge!
Il ne semble pas avoir été mis à jour depuis quelques années mais bon ça marche!
Si vous aimez utiliser gnuplot pour le traçage, vous devriez considérer Gnuplot.py . Il fournit une interface orientée objet à gnuplot et vous permet également de passer des commandes directement à gnuplot. Malheureusement, il n'est plus activement développé.
C'est juste un package qui facilite la génération des données JSON nécessaires pour Open Flash Charts 2, qui sont très belles. Consultez les exemples sur le lien ci-dessus.
Ce n'est pas techniquement une API python, mais vous pouvez l'utiliser à partir de python, il est raisonnablement rapide à coder et les résultats ont tendance à être beaux. Si vous utilisez vos parcelles en ligne, ce serait une solution encore meilleure.
PLplot est un progiciel multiplateforme permettant de créer des parcelles scientifiques. Ils ne sont pas très jolis (accrocheurs), mais ils sont assez beaux. Jetez un œil à quelques exemples (code source et images).
La bibliothèque principale PLplot peut être utilisée pour créer des tracés xy standard, des tracés semi-log, des tracés log-log, des tracés de contour, des tracés de surface 3D, des tracés maillés, des graphiques à barres et des camemberts. Il fonctionne sous Windows (2000, XP et Vista), Linux, Mac OS X et d'autres Unices.
pip search plot
regarder ce qui se passe. J'ai découvert pygal en faisant cela, et pygal a fière allure.Réponses:
Je suis celui qui soutient CairoPlot et je suis très fier qu'il soit venu ici. Matplotlib est sûrement génial, mais je pense que CairoPlot est plus beau. Donc, pour les présentations et les sites Web, c'est un très bon choix.
Aujourd'hui, j'ai publié la version 1.1. Si vous êtes intéressé, vérifiez-le sur CairoPlot v1.1
EDIT: Après un hiver long et froid, CairoPlot est à nouveau développé. Découvrez la nouvelle version sur GitHub .
la source
Pour le travail interactif, Matplotlib est la norme mature. Il fournit une API de style OO ainsi qu'une API interactive de style Matlab.
Chaco est une bibliothèque de tracés plus moderne des gens d'Enthought. Il utilise la bibliothèque de dessins vectoriels Kiva d'Enthought et ne fonctionne actuellement qu'avec Wx et Qt avec OpenGL (Matplotlib a des backends pour Tk, Qt, Wx, Cocoa et de nombreux types d'images tels que PDF, EPS, PNG, etc.). Les principaux avantages de Chaco sont sa rapidité par rapport à Matplotlib et son intégration avec l'API Traits d'Enthought pour les applications interactives.
la source
Vous pouvez également utiliser pygooglechart , qui utilise l' API Google Chart . Ce n'est pas quelque chose que vous voudrez toujours utiliser, mais si vous voulez un petit nombre de bons graphiques simples et toujours en ligne, et surtout si vous affichez de toute façon dans un navigateur, c'est un bon choix.
la source
Vous n'avez pas mentionné le format de sortie dont vous avez besoin, mais reportlab est bon pour créer des graphiques au format pdf et bitmap (par exemple png).
Voici un exemple simple de graphique à barres au format png et pdf:
texte alternatif http://i40.tinypic.com/2j677tl.jpg
Remarque: l'image a été convertie en jpg par l'hôte de l'image.
la source
Le Caire
la source
J'ai utilisé pychart et j'ai pensé que c'était très simple.
http://home.gna.org/pychart/
Tout est en python natif et n'a pas de bus de dépendances. Je suis sûr que matplotlib est charmant, mais je téléchargerais et installerais pendant des jours et je veux juste un graphique à barres rouge!
Il ne semble pas avoir été mis à jour depuis quelques années mais bon ça marche!
la source
Avez-vous examiné ChartDirector pour Python ?
Je ne peux pas parler de celui-ci, mais j'ai utilisé ChartDirector pour PHP et c'est plutôt bien.
la source
NodeBox est génial pour la création de graphiques bruts.
la source
Si vous aimez utiliser gnuplot pour le traçage, vous devriez considérer Gnuplot.py . Il fournit une interface orientée objet à gnuplot et vous permet également de passer des commandes directement à gnuplot. Malheureusement, il n'est plus activement développé.
la source
Chaco de enthought est une autre option
la source
Vous devriez également envisager PyCha http://www.lorenzogil.com/projects/pycha/
la source
Je suis fan de PyOFC2: http://btbytes.github.com/pyofc2/
C'est juste un package qui facilite la génération des données JSON nécessaires pour Open Flash Charts 2, qui sont très belles. Consultez les exemples sur le lien ci-dessus.
la source
Veuillez consulter l'intégration Open Flash Chart pour WHIFF http://aaron.oirt.rutgers.edu/myapp/docs/W1100_1600.openFlashCharts et l'intégration amCharts pour WHIFF également http://aaron.oirt.rutgers.edu/myapp/ amcharts / doc . Merci.
la source
Vous pouvez également envisager des graphiques Google .
Ce n'est pas techniquement une API python, mais vous pouvez l'utiliser à partir de python, il est raisonnablement rapide à coder et les résultats ont tendance à être beaux. Si vous utilisez vos parcelles en ligne, ce serait une solution encore meilleure.
la source
PLplot est un progiciel multiplateforme permettant de créer des parcelles scientifiques. Ils ne sont pas très jolis (accrocheurs), mais ils sont assez beaux. Jetez un œil à quelques exemples (code source et images).
La bibliothèque principale PLplot peut être utilisée pour créer des tracés xy standard, des tracés semi-log, des tracés log-log, des tracés de contour, des tracés de surface 3D, des tracés maillés, des graphiques à barres et des camemberts. Il fonctionne sous Windows (2000, XP et Vista), Linux, Mac OS X et d'autres Unices.
la source