Wykresy na blogu od Google
Czasami zdarza się, że chcemy na blogu opublikować jakieś dane liczbowe. Prezentowanie ich za pomocą tabelki z gołymi cyferkami wydaje się nie tylko niegrzeczne, ale również bezcelowe, więc potrzebne są nam wykresy. Wykresy są ładne, kolorowe i dużo bardziej sensowne dla ludzi niż kolumny cyferek.
Niestety, zamieszczenie wykresu na blogu to dość uciążliwy proces. Po pierwsze, aby stworzyć wykres musimy skorzystać z czegoś w rodzaju pakietu biurowego. Po drugie, trzeba wykresy jakoś wyeksportować i zapisać jako pliki graficzne. Po trzecie, obrazki muszą być odpowiednio przeskalowane. Po czwarte, trzeba nasze obrazki uploadować na serwer. Po piąte, musimy zamieścić nasze śliczne wykresy w ciele postu, starając się nie pomylić ich URL-i. Uff...
Na całe szczęście, Wielki Brat Dobry Wujek Google przychodzi nam na ratunek za pomocą swojego Google Chart API. API jest nie tylko przyjemne, ale banalnie proste w użyciu. Wystarczy skonstruować odpowiedni URL z parametrami odpowiadającymi różnym typom wykresu, serii danych, itp. i użyć go jako źródła obrazka (w tagu <IMG>). Na przykład aby uzyskać poniższy wykres, przedstawiający wyniki kilku największych partii w ostatnich wyborach parlamentarnych:
wystarczyło ustawić poniższy URL jako źródło obrazka (dla czytelności wstawiłem znaki nowego wiersza):
http://chart.apis.google.com/chart?
chco=0000C0,DD0000
&chs=500x200
&chd=t:6701010,5183477,1437638,2122981,247335
&cht=p
&chl=PO|PiS|PSL|SLD|Samoobrona
&chds=0,16142202
Wyglądem wykresu sterujemy ustawiając odpowiednie parametry GET URL-a obrazka. Przykładowo, cht odpowiada za typ wykresu, i aby otrzymać z poprzedniego wykresu wykres słupkowy wystarczy je zmienić na bvs:
Możliwości jest bardzo dużo (można zmieniać kolory, typy wykresów, szerokość kolumn, używać więcej niż jednej serii danych) i są one dobrze opisane w dokumentacji. Składnia jest stosunkowo prosta, więc da się URL-e wpisywać ręcznie, ale za pomocą odrobiny JavaScriptu lub prostej funkcji po stronie serwera powinno dać się to bardzo uprościć. Już istnieją odpowiednie pluginy do WordPressa i biblioteka pythonowa z tagami i filtrami do templatek Django.
Muszę powiedzieć, że jestem pod dużym wrażeniem. Od jakiegoś czasu nie widziałem tak dobrze zaprojektowanej usługi: robiącej jedną rzecz, ale bardzo dobrze, prostej, ale nie zbyt prostej i do tego wyjątkowej użytecznej. Mimo wszystko, Google to nie jest kolejny wielki koncern.
-
23-02-09, 23:16
-
24-02-09, 10:47
Można również skorzystać z mniej "koncernowych" rozwiązań. Takie proste wykresy bez problemu można zrobić korzystająć z plotutils, a do bardziej zaawansowanych zastosowań użyć gnuplota. Do obu istnieją wtyczki Wordpressa :) Składnia jest równie prosta, a zakres możliwości nieporównywalny.
Tak offtopic (niestety wyjdę teraz na łosia) Jaka jest składnia tych komentarzy? Przerosło mnie umieszczenie prostego linka... -
24-02-09, 16:02
@Kacper Kowalik:
Chart API ma chyba zaspokajać 80% najczęściej spotykanych przypadków i być maksymalnie przenośne. Poza tym, uwalnia nas od troski o zależności, składowanie obrazków, dostępne czcionki, kerning... Chociaż chyba masz rację, że w sytuacji, kiedy kontrolujemy środowisko, rozwiązanie oparte na Gnuplocie może być lepsze.(A co do analizy danych, to ostatnio zacząłem uczyć się R i wydaje się ono strasznie, strasznie fajne... Być może niedługo zacznę go używać zamiast Pythona/Lispa i Gnuplota.)
Co do komentarzy: enter -> <br/>, rzeczy wyglądające jak urle są zamieniane na linki (i niestety czasami powtórni quotowane, ale to akurat wina django: http://code.djangoproject.com/ticket/...) i to chyba wszystko. Za jakiś czas być może zastanowimy się nad jakimś markdownem albo textile.
-
25-11-09, 09:25
A ja sie nie zgodze...