Nie jestem pewien, dlaczego ten został zamknięty. Nie wywołuje płomiennych wojen ani opinii i ma zestaw jasnych odpowiedzi: istnieje tylko kilka bibliotek kreślących w Pythonie.
Alex B
7
Dlaczego to jest zamknięte? To przydatne pytanie. W każdym razie, radzę pip search plotprzyjrzeć się temu, co się pojawi. Robiąc to, odkryłem Pigala i wygląda świetnie.
Mark E. Haase,
Warto również zauważyć, że to pytanie pojawia się na początku wyszukiwania Google pod hasłem „charting python” - to wystarczający powód, aby ponownie je otworzyć.
George Lund
To pytanie jest przydatne, nie powinno być zamykane. Inne opcje obejmują bokeh i PyX
atomh33ls
Odpowiedzi:
50
To ja wspieram CairoPlot i jestem bardzo dumny, że się tu pojawił. Z pewnością matplotlib jest świetne, ale uważam, że CairoPlot wygląda lepiej. Tak więc w przypadku prezentacji i stron internetowych jest to bardzo dobry wybór.
Dzisiaj wydałem wersję 1.1. Jeśli jesteś zainteresowany, sprawdź to w CairoPlot v1.1
EDYCJA: Po długiej i mroźnej zimie, CairoPlot jest ponownie rozwijany. Sprawdź nową wersję na GitHub .
Cairoplot naprawdę nie działa jednak tak dobrze dla dużych ilości danych (popraw mnie, jeśli się mylę). Nie możesz dodawać etykiet do osi, aby podsumować hlabels lub vlabels. W każdym razie nie widzę możliwości wykreślenia wielu linii na wykresie ani żadnej kontroli nad używanymi kolorami. Mógłbym odciąć się od scenariusza ... przechodząc do matplotlib ...
Jon
Każdy powinien zignorować komentarz Jona, bardzo łatwy do oznaczenia osi i zdefiniowania użytych kolorów ... Zobacz przykłady w tests.py. W każdym razie, dzięki za miłą lib.
Daniel Magnusson
38
W przypadku pracy interaktywnej Matplotlib jest dojrzałym standardem. Zapewnia interfejs API w stylu OO, a także interaktywny interfejs API w stylu Matlab.
Chaco to bardziej nowoczesna biblioteka fabularna stworzona przez ludzi z Enthought. Korzysta z biblioteki rysunków wektorowych Enthought Kiva i obecnie działa tylko z Wx i Qt z OpenGL po drodze (Matplotlib ma zaplecze dla Tk, Qt, Wx, Cocoa i wielu typów obrazów, takich jak PDF, EPS, PNG itp.). Głównymi zaletami Chaco są jego szybkość w stosunku do Matplotlib i integracja z interfejsem Enthought Traits API dla aplikacji interaktywnych.
Zgadzam się, że ze wszystkich API - matplotlib wydaje się być rzeczywiście najbardziej dojrzałym i bogatym w funkcje (a także jest nadal obsługiwany i rozwijany). Po prostu przejdź do jego „galerii”, aby zobaczyć różne przykłady (z odpowiednim kodem źródłowym): matplotlib.sourceforge.net/gallery.html . Powiedziałbym jednak, że jego API jest no cóż ... skomplikowane - nazwy metod doprowadzają mnie do szału :) A propos „skomplikowanych” i prostych przykładów - ten wpis na blogu bardzo mi pomógł w rozpoczęciu pracy z matplotlib: shreevatsa.wordpress .com / 2010/03/07 / matplotlib-tutorial
Timur
Przepraszam, muszę też dodać, że matplotlib jest nie tylko interaktywny - faktycznie można zapisać wykres / wykres do pliku. Na przykład. PNG, PDF lub SVG.
Timur,
18
Możesz także skorzystać z pygooglechart , który wykorzystuje Google Chart API . To nie jest coś, czego zawsze chciałbyś używać, ale jeśli potrzebujesz niewielkiej liczby dobrych, prostych wykresów i są zawsze online, a zwłaszcza jeśli i tak wyświetlasz w przeglądarce, to dobry wybór.
Słowo ostrzeżenia, wykresy, które Google pozwala tworzyć, mają raczej ograniczony rozmiar (szerokość * wysokość <= 300 000 pikseli). Wykresy Google (nie API Pythona) dławią się nawet zestawami danych o niewielkich rozmiarach. W przeciwnym razie są świetne.
Nie wspomniałeś, jakiego formatu wyjściowego potrzebujesz, ale reportlab jest dobry w tworzeniu wykresów zarówno w formacie pdf, jak i bitmapy (np. Png).
Oto prosty przykład wykresu słupkowego w formacie png i pdf:
Jeśli pojawi się wyjątek „RenderPMError: Can't setFont (Times-Roman) brakuje plików T1?” (tak jak dostałem) na d. zapisz w powyższym kodzie - Rozwiązaniem jest pobranie i rozpakowanie reportlab.org/ftp/fonts/pfbfer.zip w katalogu reportlabs / fornts
Tak, użyłem dot_line_plot () w narzędziach do raportowania / statystyk. To ładne i łatwe. Zobacz najlepsze odpowiedzi Rodrigo na temat Matplotlib i CairoPlot. Używam również Matplotlib. W rzeczywistości używam go teraz.
elmarco
Dziwni ludzie nie złapali Twojej odpowiedzi, ale obecnie najczęściej głosowała odpowiedź.
pihentagy
Myślę, że dałoby to więcej głosów pozytywnych, gdyby był minimalny przykład. Twoja odpowiedź stanie się bezużyteczna, gdy link będzie nieaktywny.
Martin Thoma,
dzięki, blog ma już wiele informacji. a sam autor odpowiedział tutaj, podając więcej szczegółów później.
To wszystko jest natywnym Pythonem i nie ma wielu zależności. Jestem pewien, że matplotlib jest cudowny, ale będę pobierał i instalował przez kilka dni, a chcę tylko jeden wykres słupkowy!
Wygląda na to, że nie był aktualizowany od kilku lat, ale hej, działa!
Jeśli chcesz używać gnuplot do kreślenia, powinieneś rozważyć Gnuplot.py . Zapewnia zorientowany obiektowo interfejs do gnuplot, a także pozwala na przekazywanie poleceń bezpośrednio do gnuplot. Niestety nie jest już aktywnie rozwijany.
To tylko pakiet, który ułatwia generowanie danych JSON potrzebnych do Open Flash Charts 2, które są bardzo piękne. Sprawdź przykłady w powyższym linku.
Technicznie nie jest to Python API, ale można go używać z poziomu Pythona, jest dość szybki w kodowaniu, a wyniki zwykle wyglądają ładnie. Jeśli korzystasz ze swoich działek online, byłoby to jeszcze lepsze rozwiązanie.
PLplot to wieloplatformowy pakiet oprogramowania do tworzenia wykresów naukowych. Nie są zbyt ładne (przyciągają wzrok), ale wyglądają wystarczająco dobrze. Spójrz na kilka przykładów (zarówno kod źródłowy, jak i zdjęcia).
Biblioteka główna PLplot może być używana do tworzenia standardowych wykresów xy, wykresów pół-dzienników, wykresów dziennika, wykresów konturowych, wykresów powierzchni 3D, wykresów siatkowych, wykresów słupkowych i kołowych. Działa w systemach Windows (2000, XP i Vista), Linux, Mac OS X i innych Unikach.
pip search plot
przyjrzeć się temu, co się pojawi. Robiąc to, odkryłem Pigala i wygląda świetnie.Odpowiedzi:
To ja wspieram CairoPlot i jestem bardzo dumny, że się tu pojawił. Z pewnością matplotlib jest świetne, ale uważam, że CairoPlot wygląda lepiej. Tak więc w przypadku prezentacji i stron internetowych jest to bardzo dobry wybór.
Dzisiaj wydałem wersję 1.1. Jeśli jesteś zainteresowany, sprawdź to w CairoPlot v1.1
EDYCJA: Po długiej i mroźnej zimie, CairoPlot jest ponownie rozwijany. Sprawdź nową wersję na GitHub .
źródło
W przypadku pracy interaktywnej Matplotlib jest dojrzałym standardem. Zapewnia interfejs API w stylu OO, a także interaktywny interfejs API w stylu Matlab.
Chaco to bardziej nowoczesna biblioteka fabularna stworzona przez ludzi z Enthought. Korzysta z biblioteki rysunków wektorowych Enthought Kiva i obecnie działa tylko z Wx i Qt z OpenGL po drodze (Matplotlib ma zaplecze dla Tk, Qt, Wx, Cocoa i wielu typów obrazów, takich jak PDF, EPS, PNG itp.). Głównymi zaletami Chaco są jego szybkość w stosunku do Matplotlib i integracja z interfejsem Enthought Traits API dla aplikacji interaktywnych.
źródło
Możesz także skorzystać z pygooglechart , który wykorzystuje Google Chart API . To nie jest coś, czego zawsze chciałbyś używać, ale jeśli potrzebujesz niewielkiej liczby dobrych, prostych wykresów i są zawsze online, a zwłaszcza jeśli i tak wyświetlasz w przeglądarce, to dobry wybór.
źródło
Nie wspomniałeś, jakiego formatu wyjściowego potrzebujesz, ale reportlab jest dobry w tworzeniu wykresów zarówno w formacie pdf, jak i bitmapy (np. Png).
Oto prosty przykład wykresu słupkowego w formacie png i 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'])
tekst alternatywny http://i40.tinypic.com/2j677tl.jpg
Uwaga: obraz został przekonwertowany do formatu jpg przez hosta obrazu.
źródło
CairoPlot
źródło
Użyłem pychart i pomyślałem, że to bardzo proste.
http://home.gna.org/pychart/
To wszystko jest natywnym Pythonem i nie ma wielu zależności. Jestem pewien, że matplotlib jest cudowny, ale będę pobierał i instalował przez kilka dni, a chcę tylko jeden wykres słupkowy!
Wygląda na to, że nie był aktualizowany od kilku lat, ale hej, działa!
źródło
Czy zajrzałeś do ChartDirector dla Pythona ?
Nie mogę o tym mówić, ale używałem ChartDirector dla PHP i jest całkiem niezły.
źródło
NodeBox doskonale nadaje się do tworzenia surowej grafiki.
źródło
Jeśli chcesz używać gnuplot do kreślenia, powinieneś rozważyć Gnuplot.py . Zapewnia zorientowany obiektowo interfejs do gnuplot, a także pozwala na przekazywanie poleceń bezpośrednio do gnuplot. Niestety nie jest już aktywnie rozwijany.
źródło
Chaco z entuzjazmem to kolejna opcja
źródło
Powinieneś również rozważyć PyCha http://www.lorenzogil.com/projects/pycha/
źródło
Jestem fanem PyOFC2: http://btbytes.github.com/pyofc2/
To tylko pakiet, który ułatwia generowanie danych JSON potrzebnych do Open Flash Charts 2, które są bardzo piękne. Sprawdź przykłady w powyższym linku.
źródło
Proszę spojrzeć na osadzanie Open Flash Chart dla WHIFF http://aaron.oirt.rutgers.edu/myapp/docs/W1100_1600.openFlashCharts oraz osadzanie amCharts dla WHIFF http://aaron.oirt.rutgers.edu/myapp/ amcharts / doc . Dzięki.
źródło
Możesz również rozważyć wykresy Google .
Technicznie nie jest to Python API, ale można go używać z poziomu Pythona, jest dość szybki w kodowaniu, a wyniki zwykle wyglądają ładnie. Jeśli korzystasz ze swoich działek online, byłoby to jeszcze lepsze rozwiązanie.
źródło
PLplot to wieloplatformowy pakiet oprogramowania do tworzenia wykresów naukowych. Nie są zbyt ładne (przyciągają wzrok), ale wyglądają wystarczająco dobrze. Spójrz na kilka przykładów (zarówno kod źródłowy, jak i zdjęcia).
Biblioteka główna PLplot może być używana do tworzenia standardowych wykresów xy, wykresów pół-dzienników, wykresów dziennika, wykresów konturowych, wykresów powierzchni 3D, wykresów siatkowych, wykresów słupkowych i kołowych. Działa w systemach Windows (2000, XP i Vista), Linux, Mac OS X i innych Unikach.
źródło