Erste Schritte mit der Google Chart API

In den letzten paar Tagen habe ich mich für Ormigo ein wenig mit der Google Chart API auseinander gesetzt und wollte mal den einen, oder anderen Kniff aufzeigen, den ich so nicht in der Dokumentation gefunden hatte.

Mein erster Versuch sah so aus:


cht=lc&
chs=650x100&
chco=4d89f9&
chd=t:29,19,120,113,3,22,1,1,87,6,2,48,78,12,100,100,80,150,29,30,45,100,100,100,128,200

Am Ende der Grafik sieht man, dass das einfach nur ein glatter Strich ist, die Werte aber mit …100, 128, 200 aufhören.

Zuerst dachte ich, dass die Anzahl der Werte evtl. überschritten wurde, oder die URL zu lang war. Des Rätsels Lösung war dann aber viel einfacher: man sollte immer eine Skala angeben und somit Google den kleinsten und den größten Wert mitgeben, damit die Grafik richtig dargestellt werden kann:


cht=lc&
chs=650x100&
chco=4d89f9&
chd=t:29,19,120,113,3,22,1,1,87,6,2,48,78,12,100,100,80,150,29,30,45,100,100,100,128,200&
chds=0,200

Als nächstes wollte ich ganz gerne einen Bereich markieren, um dem Betrachter anzuzeigen, ob die Werte unter- oder oberhalb eines bestimmten Bereiches liegen. Auch hierfür bietet die Chart API etwas an. Dummerweise muss man die Werte auf einen Bereich zwischen 0.0 und 1.0 skalieren. Das funktionierte ebenfalls ganz gut in meiner Testumgebung, bis ich es dann auf unserer Staging-Plattform ausprobiert hatte und es da dann plötzlich nicht mehr funktionierte: der Bereich wurde einfach nicht angezeigt.

Hier lag das Problem an der Anzahl der Nachkommastellen! Unglaublich, aber wahr. Jetzt runde ich sie auf 3 Nachkommastellen und alles ist gut. Zusätzlich gebe ich an, dass die Y-Achse angezeigt werden soll:


cht=lc&
chs=650x100&
chco=4d89f9&
chd=t:29,19,120,113,3,22,1,1,87,6,2,48,78,12,100,100,80,150,29,30,45,100,100,100,128,200&
chds=0,200&
chm=r,aaaaaa,0,0.3,0.7&
chxt=y

Hier taucht dann gleich das nächste „Problem“ auf, da die Werte auf der Y-Achse nun wiederum gar nichts mit den Werten im Chart zu tun haben. Für mein Beispiel reichte die Angabe des Minimal- und Maximalwertes, was man relativ einfach angeben kann. Man muss nur genau mit den Pipe-Symbolen bei der Angabe der Werte aufpassen, sonst wird wieder nichts angezeigt:


cht=lc&
chs=650x100&
chco=4d89f9&
chd=t:29,19,120,113,3,22,1,1,87,6,2,48,78,12,100,100,80,150,29,30,45,100,100,100,128,200&
chds=0,200&
chm=r,dddddd,0,0.3,0.7&
chxt=y&
chxl=0:|0|200

Zum Schluß noch eine Überschrift und den Bereich unter dem Graphen ausfüllen:


cht=lc&
chs=650x150&
chco=4d89f9&
chd=t:29,19,120,113,3,22,1,1,87,6,2,48,78,12,100,100,80,150,29,30,45,100,100,100,128,200&
chds=0,200&
chm=r,dddddd,0,0.3,0.7|B,76A4FB,0,0,0&
chxt=y&
chxl=0:|0|200&
chtt=Google+Chart+API

Durch die Vielzahl der Parameter muss man auch aufpassen, ob man einen bereits verwendet hat und eine neue Einstellung vielleicht deshalb nicht greift, weil er von einem späteren Überschrieben wird. So ist es mir mit dem Parameter chm passiert, welcher sowohl für das Füllen der Fläche unter dem Graphen wie auch dem Einfärben für Bereiche zuständig ist. Die Google Chart API unterstützt nicht die mehrfache Verwendung des selben Parameternamens (ich bin mir auch unsicher, ob das W3C konform ist, grundsätzlich kann eine Webapplikation aber mit so etwas umgehen).

Insgesamt aber schon einmal eine sehr schöne Möglichkeit, Zusammenhänge in relativ kurzer Zeit visuell umzusetzen. Was ich aber nicht geschafft habe: die gleichen Daten mit einem Bar-Chart umzusetzen. Die Breite eines Balkens ist immer gleich groß und somit „sprengt“ es den von mir gesetzten Rahmen:


cht=bvs&
chs=650x100&
chco=4d89f9&
chd=t:29,19,120,113,3,22,1,1,87,6,2,48,78,12,100,100,80,150,29,30,45,100,100,100,128,200&
chds=0,200&
chm=r,dddddd,0,0.3,0.7&
chxt=y&
chxl=0:|0|200&
chtt=Google+Chart+API

Nachtrag: Mit Hilfe aus den Kommentaren: mit dem Parameter chbh kann man auch die Breite der Balken angeben:


cht=bvs&
chs=650x150&
chco=4d89f9&
chd=t:29,19,120,113,3,22,1,1,87,6,2,48,78,12,100,100,80,150,29,30,45,100,100,100,128,200&
chds=0,200&
chm=r,dddddd,0,0.3,0.7&
chxt=y&
chxl=0:|0|200&
chtt=Google+Chart+API&
chbh=20

3 Gedanken zu „Erste Schritte mit der Google Chart API

  1. Danke für den Tip! Da hatte ich wohl Tomaten auf den Augen :-)

    Und ja, auch für PHP gibt es da Libs, aber ich finde immer, dass man sich erst einmal anschauen sollte, was so eine API insgesamt kann, bevor man sich das Leben vereinfacht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert