Började ju titta på det här igår. Och jag kämpade på idag också.
Ett tag så såg det hopplöst ut. Men så, för en stund sedan (19:00 (?)), knäckte jag hur jag skulle göra.
Här ser ni ett exempel:
![[Bild: Google Chart API - BMI 4-30 november 2008]](http://chart.apis.google.com/chart?chs=450x300&cht=lc&chtt=BMI+4-30+november+2008&chts=000000,20&chco=000000&chd=t:85.44,79.59,78.81,76.86,76.47,79.98,75.69,75.69,75.69,73.35,78.03,76.47,78.81,74.91,75.69,76.08,73.35,72.18,71.40,76.86,79.59,74.91,71.40,68.67,68.28,68.67,70.23&chxt=x,y&chxl=0:|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|1:|24|25|26|27|28|29|30|31|32&chf=c,ls,90,008000,0.13,FF420E,0.62,DC2300,0.28&chm=@tFetma,000000,0,0.45:0.9,20|@t%C3%96vervikt,000000,0,0.44:0.49,20|@tNormalvikt,000000,0,0.41:0.04,20|o,0066FF,0,-1,8)
Och här ser ni den ’sträng’ man skickar till en funktion på någon server som google har:
http://chart.apis.google.com/chart?chs=450x300&cht=lc&chtt=BMI+4-30+november+2008&chts=000000,20&chco=000000&chd=t:85.44,79.59,78.81,76.86,76.47,79.98,75.69,75.69,75.69,73.35,78.03,76.47,78.81,74.91,75.69,76.08,73.35,72.18,71.40,76.86,79.59,74.91,71.40,68.67,68.28,68.67,70.23&chxt=x,y&chxl=0:|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|1:|24|25|26|27|28|29|30|31|32&chf=c,ls,90,008000,0.13,FF420E,0.62,DC2300,0.28&chm=@tFetma,000000,0,0.45:0.9,20|@t%C3%96vervikt,000000,0,0.44:0.49,20|@tNormalvikt,000000,0,0.41:0.04,20|o,0066FF,0,-1,8
Den där strängen ger som resultat en png-bild.
Och här nedan (nästa stycke) kommer ett försök till en detaljerad förklaring på hur strängen är uppbyggd.
Ett försök till en detaljerad förklaring på hur strängen är uppbyggd
Serverns s.k. adress:
http://chart.apis.google.com
Den plats på servern där funktionen ’chart’ finns:
/chart
En fråga ställs:
?
Diagrammets storlek i pixlar (bxh) [&-tecknet betyder att det kommer en instruktion till]:
chs=450x300&
Vilket typ av diagram, ’lc’ betyder linjediagram utan x och y axlar:
cht=lc&
Diagrammets rubrik:
chtt=BMI+4-30+november+2008&
Färg och storlek på rubriken:
chts=000000,20&
Linjefärg:
chco=000000&
Linjens data. Värdena omräknas till ’%’. I denna funktion (’chd’) är alltid lägsta värde ’0’ och högsta ’100’. Så för att få fram värdena här nedan fick jag ta hänsyn till i vilken intervall jag ville visa mina IBM-värden. Här hade jag satt från BMI 24 till BMI 32.
Det betyder att det är 8 ’värdesteg’ från 24 till 32. Och den ’8’:an är då lika med 100 (eller 100%).
Mitt första BMI-värde var 30,8. För att få det korrekt omräknat använder jag följande formel:
(([Aktuellt BMI-värde]-24)/(32-24))*100 -> ((30,8-24)/(32-24))*100 = 85,44.
Sedan blev det lite krångligt. Den där funktionen villa ha ’.’ (punkt) som decimalavgränsare, i min svenska så har jag ’,’ (komma).
Så det där fick fixas i en enkel textbehandlare via ’Sök och Ersätt’.
chd=t:85.44,79.59,78.81,76.86,76.47,79.98,75.69,75.69,75.69,73.35,78.03,76.47,78.81,74.91,75.69,76.08,73.35,72.18,71.40,76.86,79.59,74.91,71.40,68.67,68.28,68.67,70.23&
Detta talar om att jag vill ha två s.k. axlar definierade i diagrammet.
’x’=bottenaxeln och ’y’=vänsteraxeln.
chxt=x,y&
Diagrammets axelvärden.
’0’=bottentexten och ’1’=vänstra axelns text:
0:|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|
1:|24|25|26|27|28|29|30|31|32&
En funktion (’chf’) som definierar bakgrunden (c=’fyller hela området’, ls=’liggande stapel’, 90=att det ligger ned 90 grader, en färgdefinition och sedan bredden som anges i värden mellan ’0’ och
’1’.):
chf=c,ls,90,
008000,0.13,
FF420E,0.62,
DC2300,0.28&
Fuktion (’chm’) som definerar text, textfärg, ’värde-rad’, ’x:y’-koordinatvärden, textstorlek. Sista raden betyder: ’o’=visa en fylld cirkel för värdepositionen, ’0066FF’=vilken färg den ska ha, ’0’=’värde-rad’, ’-1’=visa en markering vid varje värdepunkt, ’8’=storleken i pixlar.
chm=
@tFetma,000000,0,0.45:0.9,20|
@t%C3%96vervikt,000000,0,0.44:0.49,20|
@tNormalvikt,000000,0,0.41:0.04,20|
o,0066FF,0,-1,8
Nästa projekt blir att skriva ihop en gambasapplikation som förenklar det där.
Men ni förstå? Eller? Men denna Google Chart API så kan jag detalj styra mycket mer än med många andra applikationer.
Vill ni själva grotta ned er i funktionen så är länken här: Google Chart API.