2009-03-11 10 views
21

Estoy buscando una biblioteca para generar diagramas svg en python (obtengo datos de una base de datos sql). He encontrado python-gd, pero no tiene mucha documentación y la última actualización fue en 2005, así que me pregunto si hay otras bibliotecas que sean buenas para este propósito.svg diagrams using python

estoy sobre todo pensando en gráficos de líneas simples, algo así como this: example line graph

+0

¿Podría aclarar qué diagramas desea generar? – Rodrigo

+0

He actualizado la descripción. – Zitrax

+0

Ok, actualicé mi respuesta para responder mejor a su pregunta. – Rodrigo

Respuesta

10

Como usted está buscando gráficos de líneas simples, probablemente, CairoPlot se adaptará a sus necesidades, ya que puede generar archivos de salida svg listos para usar. Eche un vistazo al this.

CairoPlot - DotLinePlot

Esta imagen ejemplo muestra sólo unos pocos de sus capacidades. Utilizando la versión troncal disponible en launchpad, podrá agregar un cuadro de leyenda y agregar títulos de eje.

Además de eso, el uso de la versión del tronco, es posible generar:

  • tablas dotLine (los que yo creo que necesita)
  • Los gráficos de dispersión
  • gráficos
  • Pie/Donut
  • horizontal/gráficos de barras verticales
  • gráficos Gantt
+0

Terminé usando esto ya que no hago nada más avanzado. Sin embargo, nunca logré encontrar cómo hacer que esas leyendas pequeñas se impriman a la derecha, ni en el tronco ni en 1.1; sin embargo, puedes obtener leyendas en una caja. – Zitrax

+0

Sí, las pequeñas leyendas de la derecha se eliminaron en las versiones más nuevas, ya que no funcionaron bien para muchos valores (como se puede ver arriba). La única opción, hoy en día, es usar la caja en la esquina superior derecha (disponible solo en la versión troncal). – Rodrigo

7

Aquí hay una biblioteca SVG propósito general en Python: pySVG.

+1

Pero no es gratis para uso comercial. –

10

Intente utilizar matplotlib. Puede configurarlo con un SVG backend.

+3

Aunque he usado esto, y funciona, siempre he encontrado matplotlib bastante torpe para trabajar. Prefiero casi cualquier otra biblioteca de gráficos sobre matplotlib. – Cerin

9

PyChart"es una biblioteca de Python para la creación de alta calidad encapsulado PostScript, PDF, PNG o SVG cartas."

+2

Puedo mencionar que después de usar CairoPlot por un tiempo cambié a PyChart, que es mucho más configurable. – Zitrax

9

pyCairo es una opción que vale la pena mirar.

+1

No solo Pycairo puede escribir en SVG. Con algunas líneas de código modificadas, puede escribir los mismos datos en un PDF o PNG. Muy flexible. –

6

Puede usar Graphviz para generar diagramas en formato SVG. Hay enlaces de Python a Graphviz, p. Ej., pydot - Interfaz de Python con el lenguaje de puntos de Graphviz.

+1

Si bien Graphviz es excelente, no es una solución SVG general ni aborda el requisito específico especificado en la pregunta. Esta respuesta parece un non sequitur. –

+0

@Laurence Gonsalves: los diagramas de línea no son el único tipo de diagramas http://images.google.com/images?q=diagram – jfs

+0

La pregunta pedía específicamente "gráficos de líneas simples" y tenía un ejemplo que dejaba bastante claro que cualquiera que lea la pregunta y haya usado Graphviz, Graphviz no sería útil para ellos. Como dije: Graphviz es genial. Lo uso todo el tiempo. Sin embargo, recomendarlo aquí es como recomendar un destornillador a alguien que quiera conducir con clavos. –

0

he tratado de recopilar una lista de bibliotecas de gráficos disponibles (Es un trabajo en curso, en el que i mantener la actualización de la lista): http://blizzardzblogs.blogspot.com/2010/12/data-visualization-charts-and.html

Siento que Protovis haría el trabajo por usted.Su peso ligero

  • ,
  • genera SVG (que puede ser fácilmente exportado) y
  • es javascript

Así que nada más que aprender :)

+0

solo tiene sentido si es una aplicación web ... –