2012-04-03 9 views
2

Ich versuche, eine Plotfunktion in JavaScript mit dem canvas-Element von HTML 5 zu erstellen. Das Problem, das ich habe, ist, wie man die Beschriftungen der Y-Achse berechnet.Berechnen von Plots Y-Achsenbeschriftungswerte

Zum Beispiel, wenn Sie eine Reihe von Zahlen 4-96 Bereich zu sehen, das für mich die logischen Etikett würden von 0 bis 100 in Schritten von 10 reichen

ein Array mit Zahlen in einer höheren Kategorie Gegeben Bei einem Maximum von zum Beispiel 2375 würde das Max-Label, das ich verwenden würde, 2500 sein.

Wie berechnen Sie solche Dinge? Ich habe nach einer Lösung gesucht, aber noch keine gefunden.

Vielen Dank im Voraus, Bart

Antwort

0

Leider gibt es keine einfache Möglichkeit, was Sie wollen zu tun. Wenn Sie wissen, dass Sie eine bestimmte Anzahl von Ticks (z. B. zehn) möchten, können Sie den maximalen Wert immer durch die Anzahl der Ticks teilen. Das Problem ist, dass Sie wirklich schreckliche Ticks haben werden. Zum Beispiel, mit 2375, würden Sie alle 237,5 Einheiten ein Häkchen haben, wenn Sie wahrscheinlich alle 250 Häkchen haben möchten, was viel "netter" ist. Der einzige Weg, um diese schönen runden Tick-Werte zu erhalten, ist, eine Art von Logik wie folgt zu haben:

if(maxValue < 100) { 
    tickValue = 10; 
else if(maxValue < 500) { 
    tickValue = 50; 
else if(maxValue < 1000) { 
    tickValue = 100; 
else if(maxValue < 1500) { 
    tickValue = 150; 
} // ...etc