Bonitos gráficos y tablas en Python [cerrado]


130

¿Cuáles son las bibliotecas disponibles para crear bonitas tablas y gráficos en una aplicación Python?


22
No estoy seguro de por qué este se cerró. No invita a las guerras de fuego ni a las opiniones, y tiene un conjunto de respuestas claras: solo hay un puñado de bibliotecas de trazado de Python.
Alex B

77
¿Por qué está cerrado esto? Esta es una pregunta útil. De todos modos, mi recomendación es pip search ploty mira lo que viene. Descubrí Pygal haciendo esto, y Pygal se ve muy bien.
Mark E. Haase

También vale la pena señalar que esta pregunta aparece en la parte superior de una búsqueda en Google de "charting python", razón suficiente para abrirla nuevamente.
George Lund

Esta pregunta es útil, no debe cerrarse. Otras opciones incluyen bokeh y PyX
atomh33ls

Respuestas:


50

Soy el que apoya CairoPlot y estoy muy orgulloso de que haya surgido aquí. Seguramente matplotlib es genial, pero creo que CairoPlot tiene mejor aspecto. Entonces, para presentaciones y sitios web, es una muy buena opción.

Hoy lancé la versión 1.1. Si está interesado, échele un vistazo en CairoPlot v1.1

EDITAR: Después de un invierno largo y frío, CairoPlot se está desarrollando nuevamente. Echa un vistazo a la nueva versión en GitHub .


2
Se ve bien, me gustaría probarlo. ¿Algún plan para hacer un instalador de Windows para Python 2.6?
monkut

No hay problema para el soporte, ya que estoy de acuerdo. Gracias por el cumplido: D
Rodrigo

Acabo de agregar stackoverflow.com/questions/359727#520049 para que pueda votar, si lo desea.
VonC

1
Sin embargo, Cairoplot realmente no funciona tan bien para grandes cantidades de datos (corrígeme si me equivoco). No puede agregar etiquetas al eje para resumir las etiquetas o etiquetas. No puedo ver de todos modos para trazar varias líneas en un gráfico o tener ningún control sobre los colores utilizados. Podría hackear el guión ... moviéndome a matplotlib ...
Jon

Todos deberían ignorar el comentario de Jon, es muy fácil etiquetar el eje y definir los colores utilizados ... Consulte tests.py para ver ejemplos. De todos modos, gracias por una buena lib.
Daniel Magnusson el

38

Para el trabajo interactivo, Matplotlib es el estándar maduro. Proporciona una API de estilo OO, así como una API interactiva de estilo Matlab.

Chaco es una biblioteca de trazado más moderna de la gente de Enthought. Utiliza la biblioteca de dibujo vectorial Kiva de Enthought y actualmente solo funciona con Wx y Qt con OpenGL en el camino (Matplotlib tiene backends para Tk, Qt, Wx, Cocoa y muchos tipos de imágenes como PDF, EPS, PNG, etc.). Las principales ventajas de Chaco son su velocidad en relación con Matplotlib y su integración con la API de rasgos de Enthought para aplicaciones interactivas.


2
Estoy de acuerdo en que, de todas las API, matplotlib parece ser, de hecho, la más madura y rica en funciones (y también es compatible y se está desarrollando aún más). Simplemente vaya a su "galería" para ver varios ejemplos (con el código fuente correspondiente): matplotlib.sourceforge.net/gallery.html . Sin embargo, diría que su API es, bueno ... complicada, los nombres de los métodos me están volviendo loco :) Hablando de ejemplos "complicados" y simples, esta publicación de blog me ayudó mucho para comenzar con matplotlib: shreevatsa.wordpress .com / 2010/03/07 / matplotlib-tutorial
Timur

Lo siento, debo agregar también, que matplotlib no solo es interactivo, sino que también puede guardar el diagrama / gráfico en un archivo. Por ej. PNG, PDF o SVG.
Timur

18

También puede usar pygooglechart , que usa la API de Google Chart . Esto no es algo que siempre querría usar, pero si desea una pequeña cantidad de gráficos buenos y simples, y siempre está en línea, y especialmente si se muestra en un navegador de todos modos, es una buena opción.


77
Una advertencia: los gráficos que Google le permite crear son bastante limitados en tamaño (ancho * alto <= 300,000 píxeles). Además, Google Charts (no la API de Python) se ahogará con conjuntos de datos incluso de tamaño modesto. De lo contrario, son geniales.
Pat Notz

1
Los gráficos de imágenes de Google todavía están disponibles, pero están en desuso. Para obtener más información, vaya a developers.google.com/chart/image/?hl=nl
ndequeker el

15

No mencionó el formato de salida que necesita, pero reportlab es bueno para crear gráficos tanto en formato pdf como de mapa de bits (por ejemplo, png).

Aquí hay un ejemplo simple de un gráfico de barras en formato png y 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'])

texto alternativo http://i40.tinypic.com/2j677tl.jpg

Nota: la imagen ha sido convertida a jpg por el host de la imagen.


2
Si obtiene una excepción "RenderPMError: ¿No se puede configurar Falt (Times-Roman) que falta los archivos T1?" (como obtuve) en d.save en el código anterior - La solución es descargar y extraer reportlab.org/ftp/fonts/pfbfer.zip en el directorio reportlabs / fornts
Shekhar

+1 por el esfuerzo de generar un ejemplo práctico.
vmassuchetto

6

2
¿Por qué es bueno? ¿Lo has usado?
Nick

Sí, utilicé dot_line_plot () en las herramientas de informes / estadísticas. Es bonito y fácil. Vea la respuesta superior de Rodrigo sobre Matplotlib y CairoPlot. También uso Matplotlib. De hecho, lo estoy usando en este momento.
elmarco el

Las personas extrañas no han captado su respuesta, pero la respuesta más votada actualmente.
pihentagy

Creo que esto obtendría más votos a favor si hubiera un ejemplo mínimo. Su respuesta será inútil cuando el enlace esté muerto.
Martin Thoma

gracias, el blog ya tiene mucha información. y el autor mismo respondió aquí con más detalles más adelante.
elmarco

6

Usé Pychart y pensé que era muy sencillo.

http://home.gna.org/pychart/

Es todo Python nativo y no tiene una carga de dependencias. Estoy seguro de que matplotlib es encantador, pero estaría descargando e instalando durante días y solo quiero un gráfico de barras de medición.

Parece que no se ha actualizado en unos pocos años, pero ¡funciona!




4

Si desea usar gnuplot para trazar, debe considerar Gnuplot.py . Proporciona una interfaz orientada a objetos para gnuplot, y también le permite pasar comandos directamente a gnuplot. Desafortunadamente, ya no se está desarrollando activamente.




3

Soy fanático de PyOFC2: http://btbytes.github.com/pyofc2/

Es solo un paquete que facilita la generación de los datos JSON necesarios para Open Flash Charts 2, que son muy hermosos. Mira los ejemplos en el enlace de arriba.



0

También podría considerar los gráficos de google .

Técnicamente no es una API de Python, pero puede usarla desde Python, es bastante rápida de codificar y los resultados tienden a verse bien. Si utiliza sus parcelas en línea, esta sería una solución aún mejor.


0

PLplot es un paquete de software multiplataforma para crear tramas científicas. No son muy bonitos (llamativos), pero se ven lo suficientemente bien. Eche un vistazo a algunos ejemplos (tanto el código fuente como las imágenes).

La biblioteca principal de PLplot se puede utilizar para crear gráficos xy estándar, gráficos de semi-log, gráficos de log-log, gráficos de contorno, gráficos de superficie 3D, gráficos de malla, gráficos de barras y gráficos circulares. Se ejecuta en Windows (2000, XP y Vista), Linux, Mac OS X y otros Unices.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.