2009-03-11 18 views
21

Szukam biblioteki do generowania diagramów SVG w python (I pobrać dane z bazy danych sql). Znalazłem python-gd, ale nie ma wiele dokumentacji i ostatnia aktualizacja była w 2005 roku, więc zastanawiam się, czy istnieją inne biblioteki, które są dobre do tego celu.svg diagramy za pomocą python

ja głównie myśleć o prostych wykresów liniowych, coś this: example line graph

+0

Czy możesz wyjaśnić, jakie diagramy chcesz wygenerować? – Rodrigo

+0

Zaktualizowałem opis. – Zitrax

+0

OK, zaktualizowałem moją odpowiedź, aby lepiej odpowiedzieć na twoje pytanie. – Rodrigo

Odpowiedz

10

Jeśli szukasz prostej grafiki liniowej, prawdopodobnie CairoPlot będzie pasować do Twoich potrzeb, ponieważ może generować pliki wyjściowe svg po wyjęciu z pudełka. Spójrz na this.

CairoPlot - DotLinePlot

Przykład ten obraz pokazuje tylko niektóre z jego możliwości. Korzystając z wersji trunk dostępnej pod adresem launchpad, będziesz mógł dodać pole legendy i dodać tytuły osi.

Poza tym, korzystając z wersji trunk, to jest możliwe do wygenerowania:

  • wykresy DotLine (te Wierzę, że potrzebujesz)
  • wykresy Scatter
  • wykresy
  • Pie/Donut
  • Poziomy/Pionowe wykresy słupkowe
  • Wykresy wykresu Gantta
+0

Skończyło się na tym, ponieważ nie robię nic bardziej zaawansowanego. Jednak nigdy nie udało mi się znaleźć sposobu na wydrukowanie tych małych legend po prawej stronie, ani z pnia, ani w wersji 1.1, ale można dostać legendy w pudełku. – Zitrax

+0

Tak, małe legendy po prawej zostały usunięte w nowszych wersjach, ponieważ nie działały dobrze dla wielu wartości (jak widać powyżej). Obecnie jedyną opcją jest użycie skrzynki w prawym górnym rogu (dostępna tylko w wersji trunk). – Rodrigo

7

Oto ogólnego przeznaczenia SVG bibliotekę w Pythonie: pySVG.

+1

Ale to nie jest za darmo do użytku komercyjnego. –

10

Spróbuj użyć matplotlib. Możesz go skonfigurować za pomocą SVG backend.

+3

Chociaż użyłem tego i działa, zawsze uważałem matplotlib za dość przyzwoitego do pracy. Wolę prawie każdą inną bibliotekę graficzną od matplotlib. – Cerin

9

PyChart"to biblioteka Pythona do tworzenia wysokiej jakości Encapsulated PostScript, PDF, PNG lub SVG wykresach."

+2

Mogę tylko wspomnieć, że po tym jak użyłem CairoPlot przez pewien czas, przełączyłem się na PyChart, który jest znacznie bardziej konfigurowalny. – Zitrax

9

pyCairo to opcja warta obejrzenia.

+1

Nie tylko można pycairo pisać do SVG. Po zmianie kilku linii kodu można zapisać te same dane w pliku PDF lub PNG. Bardzo elastyczny. –

6

Możesz użyć Graphviz do generowania diagramów w formacie SVG. Istnieją powiązania w Pythonie z Graphviz, np. pydot - Interfejs Pythona z językiem Dot Graphviz.

+1

Podczas gdy Graphviz jest świetny, nie jest to ani ogólne rozwiązanie SVG, ani nie spełnia wymagań określonych w pytaniu. Ta odpowiedź wydaje się być non sequitur. –

+0

@Laurence Gonsalves: wykresy liniowe nie są jedynym typem diagramów http://images.google.com/images?q=diagram – jfs

+0

Pytanie wymagało "prostych wykresów liniowych" i miało przykład, który jasno pokazał każdy, kto zarówno czyta pytanie, jak i używał Graphviz, że Graphviz nie byłby dla nich przydatny. Tak jak powiedziałem: Graphviz jest świetny. Używam go cały czas. Polecenie go tutaj jest jak polecanie śrubokrętu komuś, kto chce jeździć gwoździami. –

0

starałem się zestawić listę dostępnych bibliotek wykresów (swoją trwającą pracę, w której trzymam aktualizacji wykazu): http://blizzardzblogs.blogspot.com/2010/12/data-visualization-charts-and.html

Uważam, że protovis wykona to za ciebie.Jego

  • lekki,
  • generuje SVG (które mogą być eksportowane łatwo) i
  • jest javascript

Więc nic więcej, aby dowiedzieć się :)

+0

ma sens tylko wtedy, gdy jest to aplikacja internetowa ... –