rss

Třída na tvorbu grafů

25. 7. 2007

Napsal jsem PHP třídu na tvorbů grafů. Je to amatérská práce, trochu jsem si tím cvičil objektové programování, ale hlavně jsem to dělal proto, že jsem nikde na Internetu nenašel uspokojivý ekvivalent. Buď je to za peníze nebo to neumí to co potřebuji (a už se to nevyvíjí).

Nyní tuto třídu dávám volně ke stáhnutí (pod licencí GPL) a dofuám, že se jí někdo ujme a dokončí jí. Umí totiž jenom to základní, ale ještě jí hodně věcí chybí.

Co třída umí a jaké má cíle

  • je a měla by být velice jednoduchá na použití, protože stačí pár řádků kódu a už se kreslí graf.
  • grafy jsou a měly by pěkně graficky vypadat. Nic kostrbatého a systémového, prostě aby to lahodilo oku, jak říkával můj bývalý učitel Ing. Fuksa.
  • při použití grafu se nastavuje minimum parametrů, ostatní si umí graf dopočítat sám, tak by to mělo pokračovat (třeba rozložení layoutu apod.)
  • zatím třída umí vykreslovat jenom dva styly: přímku a sloupce. Chtělo by to několik dalších.
  • úplně jsem nezvládl správné rozložení čísel na osách. Není to úplně jednoduché, chce to už více matematiky (aby to šlo třeba po jednotkách, desítkách apod).

Grafeus

Takhle vznešeně a trapně jsem jí zatím nazval, to ale není důležité. Napsal jsem z nadšení řekl bych jádro které funguje, ale už nemám sílu to dokončit, přitom ty grafy potřebuju. Používám to jak ve svých adminech, tak bych to rád používal i na webových aplikacích pro lidi. A myslím, že se to hodí i někomu z vás. Proto ji zveřejňuji. I kdyby se nikdo s pokračováním nechytl, třeba aspoň někomu se hodí, přeci to tu nenechám hnít, ještě by se na tom chytla digitální plíseň.

Tak prosím stahujte a pokud umíte v PHP lépe než já, tak dále vyvíjejte a výsledky mi oznamujte, rád zveřejním další verze i s jejich autory a odkazy na ně.

Grafeus v0.1 + příklad použití (zip, 5 KB)

Ukázka


Komentáře

Dan

Ahoj, je to zajímavé, ale v tom příkladu užití máš na konci řádku 16 chybu - máš tam tři závorky a mají tam být jen dvě.

Medhi

Dan [1]: Díky, opraveno. Psal jsem to z patra a nejsem tak důsledný.

Jiří Bureš

Nešel by do článku doplnit odkaz na nějaké živé demo?

Spud

Bylo by dobry predvest nejakou ukazku primo tady na blogu.

Medhi

Jiří Bureš [3]: Spud [4]: Pravda, doplnil jsem ukázku.

Tomáš Hodboď

Nepomůže tohle? http://pear.veggerby.dk/samples/

Medhi

Tomáš Hodboď [6]: že bych něco přehlédl? Jdu to vyzkoušet, díky

Medhi

Tomáš Hodboď [6]: Vypadá to strašně rozložitě, nahrávat na server 1,2 MB souborů jenom kvůli vykreslení grafu..

Nill

Nebylo by lepsi pouzit flashove grafy, jak jsou k videni treba na Google Analytics? Nezatezuji server, muzou byt interaktivni a flash ma preci jen radove vetsi graficke schopnosti nez PHP. Umi PHP nejakym rozumnym zpusobem vubec antialiasing?

Finwe

Ještě existuje JPGraph, ale ta je taky dost velká…

zaachi

Uz je to nejaka doba, kdy jsem zkousel neco podobneho.
Dopadl jsem stejne jako ty a nedotahl jsem to do konce.
Tady je to co jsem udelal:
http://grafy.zaachi.com/
Je tam odkaz i na zobrazeni zdrojoveho kodu.

Michal Illich

Pod licenci GPL by to bylo v praxi tezko pouzitelne, licence LGPL by byla vhodnejsi.

Navic obecne GPL v soucasne verzi 2 je pro webove projekty nevhodna.

Josef Vanžura

Taky bych se přiklonil k LGPL.
Nill [7]: Je hodně lidí co flash blokují, navíc obrázek má tu výhodu, že si ho uživatel může uložit a kochat se jím (třeba tapeta na plochu :).

maertien

My mame napsanou pomerne komplexni tridu pro generovani grafu, ale todle vubec nevypada spatne :-) Kazdopadne zkusim nekdy dodelat par stylu grafu, aby to dostalo smrnc :-) Pekna prace.

Nill

Josef Vanžura: ja bych naopak rekl, ze takovych konzerv je minimum - podle Adobe 1,5 % : http://www.adob...penetration.html . Kochat se obrazkem 300x200px roztazenym na 1280x960 bych fakt nechtel :). Flashovy graf se da vyrenderovat na libovolne velke rozliseni.

gindar

Nill [15]: Mám na mysli spíš znovuvyužití grafu: stáhnu si obrázek z webu, můžu ho zveřejnit v článku nebo vložit do .doc, .odt, .pdf dokumentu. Flash zůstane jen na tom místě kde byl vložen. Na druhou stranu je pravda že flashové grafy vypadají víc eye-candy, takže obrázek/flash bych volil dle použití. Třeba něco jako je speedmeter na lupě.cz to je pro flash jako dělané, ale třeba volební výsledky bych radši v obrázku.

Nill

gindar: No z flashovyho grafu lze snadno udelat obrazek printscreenem, jsou aplikace, ktery ofoti treba jen vybranou cast obrazovky. Co se tyce znovupouzitelnosti, tak mam zkusenosti z tvorby diplomky, ze jsem stejne vsechny grafy znovu generoval v excelu, protoze prece nejde do diplomky cpat kazdy graf jinak vizualne provedeny. Navic obrazkovy grafy ani nemaji potrebny rozliseni pro tisk. PHP neumi antialiasing, takze treba kolacovy grafy budou pekne zubaty - to rozhodne nepusobi moc reprezentativne pro zminene volebni vysledky. Jeste jsem nezaznamenal, ze by si nekdo stezoval treba na flash. grafy z Google analytics, fakt nevidim duvod proc v soucasnosti jeste generovat grafy pomoci PHP.

Nill

gindar: No z flashovyho grafu lze snadno udelat obrazek printscreenem, jsou aplikace, ktery ofoti treba jen vybranou cast obrazovky. Co se tyce znovupouzitelnosti, tak mam zkusenosti z tvorby diplomky, ze jsem stejne vsechny grafy znovu generoval v excelu, protoze prece nejde do diplomky cpat kazdy graf jinak vizualne provedeny. Navic obrazkovy grafy ani nemaji potrebny rozliseni pro tisk. PHP neumi antialiasing, takze treba kolacovy grafy budou pekne zubaty - to rozhodne nepusobi moc reprezentativne pro zminene volebni vysledky. Jeste jsem nezaznamenal, ze by si nekdo stezoval treba na flash. grafy z Google analytics, fakt nevidim duvod proc v soucasnosti jeste generovat grafy pomoci PHP.

mustafa

Doma na localhostu mi třída nefunguje a na hostingu ano. Nevíte v čem může být problém?

tark

Teď jsem to zkoušel, je to super ;) Jen škoda té GPL, no. Co se dá dělat :-)

coder

Paráda, díky, hledal jsem něco na kreslení jednoduchých grafů a po prolezení několika skriptů jsem si vybral tenhle, jednoduché a funkční ? díky ;)

agentnegro

cao, no lidi ja nechci prudit, ale myslim, ze nic o cem jse tady mluvili se nevyrovna google.com. http://code.google.com/?gallery.html

ukazka (nevim jak sem ten odkaz vlozit, jelikoz se to formatuje nejak divne.):

(http://)char­t.apis.google­.com/chart?cht=lc&chd­=t:72,13,11,25,4,29,18,5­,58,2,9,13&chco=c0e146&c­hls=4.0,0.0,0­.0&chxt=x,y,x&chxl=0:|Kv­%C4%9Bten|%C4%8Cer­ven|%C4%8Cerve­nec|Srpen|Z%C3%A1%C5%99%­C3%AD%7C%C5%98i­jen|Listopad|Pro­sinec|Leden|%C3%9A­nor|B%C5%99ezen|Du­ben|1:|0|40%20000­.0|80%20000.0|120%20000­.0|160%20000.0|200%20000­.0|2:|143%20176,?|25%20500,?|22%20419,?|49%20085,?|8%20110,?|58%20445,?|35%20624,?|9%20205,?|116%20950,?|4%20859,?|18%20739,?|25%20420,?&chs=800×200&­chg=9,20&chf=c,ls,90,f3f­cd6,0.20,ffffff,0­.20


Archiv