Quelles sont les bibliothèques disponibles pour créer de jolis graphiques et graphiques dans une application Python?
Réponses
Trop de publicités?Je suis le seul soutien CairoPlot et je suis très fier qu'il est venu ici. Sûrement matplotlib est grande, mais je crois CairoPlot est plus beau. Donc, pour les présentations et les sites internet, c'est un très bon choix.
Aujourd'hui, j'ai sorti la version 1.1. Si vous êtes intéressé, consultez-le à l' CairoPlot v1.1
EDIT: Après un long et froid hiver, CairoPlot est développée à nouveau. Découvrez la nouvelle version sur GitHub.
Pour un travail interactif, Matplotlib est la maturité de la norme. Il fournit un OO-API de style ainsi que d'un Matlab-style interactif de l'API.
Chaco est un plus moderne de traçage de la bibliothèque des gens de Enthought. Il utilise Enthought de Kiva de dessin vectoriel de la bibliothèque et ne fonctionne actuellement qu'avec Wx Qt et OpenGL sur le chemin (Matplotlib a backends pour les Savoirs traditionnels, Qt, Wx, de Cacao, et de nombreux types d'images comme PDF, EPS, PNG, etc.). Les principaux avantages de Chaco sont sa vitesse par rapport à Matplotlib et de son intégration avec Enthought Traits de caractère d'API pour les applications interactives.
Vous pouvez également utiliser pygooglechart , qui utilise l' API Google Chart . Ce n'est pas quelque chose que vous voulez toujours utiliser, mais si vous voulez un petit nombre de bons, simples, de graphiques, et que vous êtes toujours en ligne, et surtout si vous affichez dans un navigateur de toute façon, c'est un bon choix.
Vous n'avez pas mentionné le format de sortie dont vous avez besoin, mais reportlab est efficace pour créer des graphiques au format pdf et bitmap (par exemple, png).
Voici un exemple simple de diagramme à barres en format png et pdf:
from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.barcharts import VerticalBarChart
d = Drawing(300, 200)
chart = VerticalBarChart()
chart.width = 260
chart.height = 160
chart.x = 20
chart.y = 20
chart.data = [[1,2], [3,4]]
chart.categoryAxis.categoryNames = ['foo', 'bar']
chart.valueAxis.valueMin = 0
d.add(chart)
d.save(fnRoot='test', formats=['png', 'pdf'])
Remarque: l'image a été convertie en jpg par l'hôte de l'image.