Wykres w PHP 2007-09-21
W internecie można znaleźć dużo bibliotek, które pomagają w rysowaniu bardziej skomplikowanych wykresów. Niestety większość z nich jest płatna, zdarza się też, że można ich użyć za darmo, ale wyłącznie w celach prywatnych. Muszę zaznaczyć, że niektóre wyglądają przepięknie dzięki osadzeniu we flash. Zdecydowałem się jednak szukać czegoś całkowicie darmowego, zwłaszcza, że potrzebowałem tylko narysować jeden głupi wykres. Trafiłem chyba na dwie najbardziej popularne biblioteki, a mianowicie: phplot i Image_Graph (dawne GraPHPite).
Na początek przetestowałem bibliotekę phplot, którą tak naprawdę ciężko nazwać biblioteką bo główny jej człon stanowi klasa z prawie dwustoma (sic!) metodami. Jak na kilkuletni projekt dokumentacja wygląda tragicznie (nieaktualna, brak opisu wszystkich metod). Przykładów jak na lekarstwo, naliczyłem słownie dwa z załączonym kodem. Pomimo tego drążyłem kod phplot.php w poszukiwaniu interesujących mnie metod, ale po paru godzinach się poddałem. Niektórych rzeczy nie tylko nie dało się osiągnąć, ale część nie działała dobrze.
Wykres ostatecznie narysowałem przy użyciu Image_Graph (z uwagi na przynależność do PEAR należy ściągnąć dodatkowo biblioteki: Image_Color oraz Image_Canvas). Przy przeglądaniu dokumentacji jak na ironię zamiast 200 metod pojawia nam się przybliżona liczba klas co nie jedną osobę na pewno przerazi. Na szczęście mamy zbiór ponad 50 przykładowych wykresów razem z kodem źródłowym i dzięki ich analizie trochę łatwiej poruszać się po dostarczonej dokumentacji API. Pomimo tych wszystkich pomocy zrozumienie zależności pomiędzy poszczególnymi klasami zajmuje trochę czasu.
No i na koniec pora na przykładowy kod wykresu.

Słowa kluczowe: PHP, Techblog, Image_Graph, biblioteka, pear, phplot, rysowanie, wykres, artykuł, blog
Rowniez wybralem Image_Graph. Na poczatku ciezko sie polapac ale jest to bardzo bogata biblioteka - na uwage zasluguje mozliwosc generowania wykresow w SVG (wektorowy opis w XMLu), dzieki czemu znika problem polskich znakow i wyglada po prostu rewelacyjnie (niestety nie dziala pod IE6 - ale kto przejmowalby sie tym).
Przyklady http://pear.veggerby.dk/samples/
http://code.google.com/p/python-libchart/
Do wykresów Python rlz.
Inwestycja w amcharts.com sie opłaca :_) dla mnie bomba I można eksportować do php wykresy :) Dzięki temu umożliwiony jest np eksport do PDF ;p Oczywiście via JS + przeglądarka :/
@Amused Monkey: praktycznie żaden hosting php niestety nie posiada dostępu do pythona
@me: w sumie to jest idealne na to co potrzebowałem, jest tam przykład gdzie po najechaniu myszką na wykres odczytuje jego aktualną wartość, a ja to robiłem u siebie poprzez użycie javascript ;) Kosztuje to z tego co widzę 85euro. Przy kolejnym takim zleceniu spytam klienta czy dopłaci by mieć coś ładniejszego ;)
Obiektowy kod niema co :)
Temat byl długo wałkowany. Ja przez lata używałem tylko http://www.aditus.nu/jpgraph/
Powstało jeszcze pare innych fajnych bibliotek generujących flashowe wykresy, ale to inna bajka.
A jest jakiś link do podsumowania tego wałkowania? ;)
Ja używam LIBCHART do generowania wykresów temperatury, które wyglądają tak oto:
http://esc.homeftp.net/
heh image_graph... Nie ma niestety nic lepszego, jak na razie, ale do doskonałości to tej bibliotece daleko... Np. w wykresach kolowych nie dziala mi legenda; w napisach nie ma polskich liter (fonty wstawilem), itp.
Ale i tak autor Image_Graph postaral sie bardziej, niz wielu z nas, bo sam robi to dzielo (razem z Image_Canvas, do ktorego tez mam sporo zarzutow). Ostatni update Image_Graph byl niestety w 2006, czy ktos mialby chec to pociagnac? Ja moze, ale sie zastanowie...`
Mozecie tez sprobowac komponentu mojego autorstwa FSTATS
http://www.flashstar.pl/f/fstats/