Ik ben een php-object aan het maken waarmee je makkelijk een grafiek kan laten zien, het vordert al behoorlijk maar ik krijg m'n assen niet altijd even mooi voor elkaar:

Search hier en Google zijn niet echt nuttig, beide keren verzand je in allerlei problemen met grafieken, maar weinig mensen coden die dingen zelf
Ik gebruik nu een methode die via logaritme etc eerst de bovenliggende 10-macht neemt, dus 25 -> 100 101 -> 1000 en vandaar deel ik door 2,4 of 8 als dat past. Hier zie je dus dat bij een maximale waarde van 213 de as wordt bepaald door
Dit levert dus 1000 en dan kijk ik of ik door 2,4 of 8 kan delen, in dit geval dus 4. Bij een negatieve maximale waarde komt er een min teken voor
Voor de ondergrens doe ik het omgekeerde, ik neem de onderliggende 10-macht. Het voordeel hiervan is dat het ook goed lijkt te werken met negatieve waardes. Hiervoor gebruikte ik namelijk nul of de maximale waarde gedeeld door 2,4 of 8.
Het probleem: de waardes bij de assen zijn niet altijd even mooi, maar ja zoals je hier ziet met twee assen moet ik vantevoren bepalen waar de lijntjes komen omdat er bij beide assen een getal moet worden toegevoegd..
Graag hoor ik jullie suggesties voor een 'mooiere' oplossing als deze bestaat natuurlijk...

Search hier en Google zijn niet echt nuttig, beide keren verzand je in allerlei problemen met grafieken, maar weinig mensen coden die dingen zelf
Ik gebruik nu een methode die via logaritme etc eerst de bovenliggende 10-macht neemt, dus 25 -> 100 101 -> 1000 en vandaar deel ik door 2,4 of 8 als dat past. Hier zie je dus dat bij een maximale waarde van 213 de as wordt bepaald door
PHP:
1
| $this->axis['left']['maxAxis']=pow(10,ceil(log10($this->axis['left']['max']+1))); |
Dit levert dus 1000 en dan kijk ik of ik door 2,4 of 8 kan delen, in dit geval dus 4. Bij een negatieve maximale waarde komt er een min teken voor
Voor de ondergrens doe ik het omgekeerde, ik neem de onderliggende 10-macht. Het voordeel hiervan is dat het ook goed lijkt te werken met negatieve waardes. Hiervoor gebruikte ik namelijk nul of de maximale waarde gedeeld door 2,4 of 8.
Het probleem: de waardes bij de assen zijn niet altijd even mooi, maar ja zoals je hier ziet met twee assen moet ik vantevoren bepalen waar de lijntjes komen omdat er bij beide assen een getal moet worden toegevoegd..
Graag hoor ik jullie suggesties voor een 'mooiere' oplossing als deze bestaat natuurlijk...
[ Voor 5% gewijzigd door 4VAlien op 21-01-2004 14:28 ]