english English

De Google Chart API, kort toegelicht

Google biedt niet enkel de Google Maps API aan, maar ook de Google Charts API. Zoals je wel kunt afleiden uit de naam, kun je met deze API op een snelle en gemakkelijke manier grafieken genereren voor je website.. Van lijngrafieken tot taartdiagrammen, het is allemaal mogelijk met de Google Chart API.

De Google Chart API in werking.

Om de Google Chart API te gebruiken moet je geen grote programmeur zijn, het enige dat je moet doen is een afbeelding (image tag) toevoegen binnen je website met de juiste parameters die je nodig hebt om het gewenste resultaat te bekomen.

Enkele voorbeelden:

Lijndiagram

Lijndiagram

Staafdiagram

Staafdiagram Staafdiagram

Taartdiagram

Taartdiagram Taartdiagram

Venn-diagram

Venn diagram

Scatter plots

Scatter plot

Radargrafieken

Taartdiagram Taartdiagram

Dit zijn slechts simpele voorbeelden, maar het is mogelijk om de grafiek volledig naar je eigen hand te maken. De verschillende soorten grafieken kun je terugvinden op http://code.google.com/intl/nl/apis/chart/types.html

Hoe de Google Chart API gebruiken?

Stel, je wil een grafiek met de browsers van alle bezoekers die je website de afgelopen week bezocht hebben, met een overzichtelijke legende. De grafiek zou er kunnen uitzien als volgt:

Inventis webdesign

De image tag van bovenstaande grafiek zou de volgende zijn:


Nu zullen we stap voor stap de parameters van deze grafiek overlopen:

begin van de image tag

cht=bvg
type grafiek
bvg = verticale staafdiagram met groepen

andere grafiek types

&chs=560x300
afmetingen grafiek
De grootst mogelijke ruimte voor grafieken is 300.000 pixels. Aangezien de maximale hoogte of breedte 1000 pixels is, kunnen dit voorbeelden zijn van maximale afmetingen: 1000x300, 300x1000, 600x500, 500x600, 800x375 en 375x800

&chtt=Bezoekers+webbrowsers+Inventis.be
+afgelopen+week
grafiek titel
tekst die bovenaan de grafiek getoond wordt

&chts=1989c9,18
opmaak titel
kleurcode (zonder #) en lettergrootte
&chd=t:
360,240,280,175,230,411,423
|250,320,165,244,312,275,399
|150,122,312,73,215,55,155
data formaat
resultaten van browser 1
resultaten van browser 2
resultaten van browser 3

in dit voorbeeld maken we gebruik van text encoding bestaande uit:
  • positieve floating point getallen van nul (0.0) tot honderd (100) gescheiden door een komma
  • minus een (-1) om een ontbrekende waarde op te geven
  • pipe (|) om de verschillende resultaatgroepen te scheiden
andere data formaten

&chds=0,500
schaal grafiek
minimum- en maximumwaarde van de grafiek

op basis van deze uitersten wordt de schaal bepaald

&chxt=x,y,x
positie labels
toon labels (tekst) op de verschillende assen

mogelijke assen:
  • x = x-as onderaan
  • t = x-as bovenaan
  • y = linker y-as
  • r = rechter y-as
&chxl=
0:|ma|di|wo|do|vr|za|zo
|2:|16-22+februari+2009
teksten labels
tekst voor labels as 0 (x)
tekst voor labels as 2 (x)

de verschillende labels worden gescheiden door een |
0: duidt op de eerste as (index &chxt, startende van 0)
&chxr=
1,0,500,50
bereik assen
bereik van as 1 (y) loopt van 0 tot 500 in stappen van 50

de verschillende assen worden gescheiden door een |
&chxs=
0,82d2eb,11
|1,0d0d0d,11
|2,1989c9,14
opmaak assen
opmaak van as 0 (x)
opmaak van as 1 (y)
opmaak van as 2 (x)

index as (startende van 0), kleurcode (zonder #), tekstgrootte, |
&chxp=
2,50
positionering assen
positie van as 2 (x) op 50%, scheiding door |
&chco=
82d2eb,1989c9,5bb9dd
kleuren grafiek (staven)
kleurcodes (zonder #) komma gescheiden
&chdl=
Internet+Explorer
|Firefox
|Opera
legende
titel van browser 1
titel van browser 2
titel van browser 3

de verschillende items worden gescheiden door een |

&chdlp=r
positionering legende
mogelijke posities:
  • b = onderaan de grafiek (horizontaal uitgelijnd)
  • t = bovenaan
  • bv = onderaan (verticaal uitgelijnd)
  • tv = bovenaan
  • r = rechts van de grafiek
  • l = links

&chbh=a,5,15
breedte staven en spatiëring
breedte van de staven, afstand tussen de staven en afstand tussen de groepen

in dit voorbeeld nemen we als breedte van de staven a zodat de breedte van de staven automatisch berekent wordt op basis van de beschikbare ruimte

&chg=0,10,1,5
gridlijnen
grid lijnen op de y-as om de 10% met een lijnlengte van 1 en een spatielengte van 5
&chm=
N,82d2eb,0,-1,9
|N,1989c9,1,-1,9
|N,5bb9dd,2,-1,9
markers
resultaten worden getoond op staven browser 1
resultaten worden getoond op staven browser 2
resultaten worden getoond op staven browser 3

| gescheiden
" alt="Grafiek" /> einde van image tag

Een eenvoudiger voorbeeld

Bovenstaande weergave is natuurlijk een zeer uitgebreide versie en niet alle functionaliteiten zijn mogelijk bij alle soorten grafieken. Op deze pagina kun je alle functionaliteiten bekijken en zien of het mogelijk is deze te gebruiken op de gewenste grafiek.

Om alle totalen per browser samen weer te geven kunnen we een taartdiagram gebruiken. Het taartdiagram zou er als volgt uitzien: taartdiagram

De image tag van bovenstaande grafiek zou de volgende zijn:


begin van de image tag

cht=p3
type grafiek
p3 = 3-dimensionele taartdiagram
&chs=560x200 afmetingen grafiek
&chd=t:
3215,1758,2984
data formaat
resultaten van browser 1, browser2, browser3
&chl=
Internet+Explorer
|Firefox
|Opera
labels speficiek voor taartdiagrammen
label browser 1
label browser 2
label browser 3

de verschillende labels worden gescheiden door een |
&chco=82d2eb,1989c9,5bb9dd kleuren grafiek
" alt="Grafiek" /> einde van image tag

Andere functionaliteiten Google Chart API

De Google Chart API kan niet enkel gebruikt worden om grafieken te generen, maar ook voor:

  • Kaarten
  • Google-o-meter
  • QR codes (twee-dimensionale streepjes code) meer informatie

Kaarten

Wereldkaart Europa

Google-o-meter

Google-o-meter Google-o-meter

QR codes

QR codes QR codes

Meer informatie over de Google Chart API kun je terug vinden op http://code.google.com/intl/nl/apis/chart/ samen met een uitgebreide documentatie over de verschillende soorten grafieken en functionaliteiten.

RSS reacties feed

7 reacties tot nu toe

Audience

Audience zei 3 jaar geleden:

Zeer interessant! Ik was al even op zoek naar een deftige en volledige Nederlandstalige uitleg.
Xavez

Xavez zei 3 jaar geleden:

Nice! Artikel wordt gebookmarked for future reference ;).
webdesign

webdesign zei 3 jaar geleden:

Goed artikel!! Ik vraag me alleen af wat hier nou het grote voordeel van is, ten opzichte van een programma, zoals numbers. Zelfs met word is het mogelijk om zoiets te doen. Waarom zo'n lange code invoeren? Moet wel toegeven dat het er goed uitziet, het lijkt me alleen niet makkelijk om alles zo via code in te vullen.
Dieter

Dieter zei 3 jaar geleden:

@webdesign: Het grote voordeel van de Google Chart API is dat je op een snelle manier grafieken kunt genereren op jouw website met variabele data zonder hiervoor zelf eigen programmatie of API te schrijven. Numbers en Word kun je gebruiken voor het genereren van lokale grafieken en lijkt me niet echt nuttig om te gebruiken op je website tenzij je natuurlijk bij elke nieuwe data de grafiek opnieuw gaat uploaden.
FinalFrag

FinalFrag zei 3 jaar geleden:

Vorige week dacht ik nog: 'wanneer zou ik dat ooit gebruiken' en vandaag ben ik er mee bezig. Veel handiger dan klassen te includen van een library (zoals bv pChart). Gewoon een img tag schrijven en klaar
Siem Eikelenboom

Siem Eikelenboom zei 2 jaar geleden:

Gisteren een website opgeleverd die grondwaterstandgrafieken toont. Via de database genereren we html-pagina's die Google Chart aanroepen. Et voila! Perfecte tool. Jammer dat het niet werkt in Firefox. Hopelijk doen ze daar gauw wat aan.
Siem Eikelenboom

Siem Eikelenboom zei 2 jaar geleden:

Sorry, ik lees bovenstaande na en moet voor de duidelijkheid erbij zeggen dat wij de data niet doorgeven via de img-tag zoals in de voorbeelden hierboven, maar via een javascript met addrow-statements. Dat werkt bij ons niet in Firefox, wel in IE.

Iemand dezelfde ervaring?

Reageer op dit artikel

Toegelaten tags: <a href="" title=""> <code> <em> <strong>

RSS Feed

Bekijk alle tags

Laatste reacties

  • Fabio Maggio: @Tom Claus: bedankt!
  • Tom Claus: @Filip Bedankt voor de tip, CouchDB gaan we zeker even mee bekijken. @Fabio Deze...
  • Fabio Maggio: Is die presentatie van Masterizing PHP Data Structure ook nog ergens te bekijken?
  • Tom Hermans: Thx Tom, schone samenvatting en een massa interessante links, ideaal voor mensen die die dag...
  • Filip Stas: Als MongoDb je al boeit zeker ook eens kijken naar couchbase ook zeker de moeite!