So legen Sie einen statischen Mindestwert für Achsen in Highcharts fest

8

Ich habe zeitbasierte Daten im Bereich von 1 bis 500. Die Zeit wird auf der x-Achse und die Werte auf der y-Achse aufgetragen.

Wenn der Bereich zwischen den minimalen und maximalen Datenpunkten groß ist, ist die Startlabel der y-Achse 0. Ich kann Highcharts sagen, dass ich die Beschriftung nicht anzeigen soll, indem ich yAxis.startOnTick = false; einstelle, aber das ist nicht das, wonach ich suche .

Hier ist ein Problem des Problems, bei dem Sie nicht feststellen können, ob der erste Punkt 0 oder ein anderer Wert ist. 0 zu haben, sieht auch so aus, als ob der Min-Bereich für y ist  0, nicht 1.

Can Highcharts zeigen das erste Label an und das erste Label sollte immer auf den minimalen Wert im Dataset (relativ zu seiner Achse) gesetzt werden.

    
David Murdoch 18.11.2011, 22:24
quelle

2 Antworten

9

Ich bin erstaunt, wie schwierig das ist. Keine optimale Lösung, aber das beste Ich kann mich mit HighChart's api ausdenken :

%Vor%

    
Mark 19.11.2011, 18:07
quelle
3

Eine Lösung (die Antworten auf Marken optimiert) besteht darin, yAxis.labels.formatter mit this.isFirst und this.axis.dataMin zu verwenden. so:

%Vor%

Siehe diese JSFiddle-Demo für ein Beispiel.

Der Vorteil ist, dass Sie tickInterval nicht manuell setzen müssen, wodurch viele Aufrufe an formatter gespeichert werden und Highcharts die Etikettenintervalle selbst herausfinden kann. Außerdem verwendet es die Achsenkenntnis des minimalen Datenwerts, anstatt auf ein Array zu überprüfen (das Sie möglicherweise durchlaufen müssen, um das Minimum zu finden).

Achten Sie darauf, dass die yAxis.min hier auf etwas Sinnvolles eingestellt werden muss (funktioniert am besten mit 0 und positiven Daten). Wenn die y-Achse weit unter den minimalen Datenpunkt hinausgeht, ist die erste Beschriftung nicht die bei 0.

Der this.axis -Wert war nicht verfügbar, als diese Frage gestellt wurde.

    
Halvor Strand 31.07.2014 11:50
quelle

Tags und Links