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.
Ich bin erstaunt, wie schwierig das ist. Keine optimale Lösung, aber das beste Ich kann mich mit HighChart's api ausdenken :
%Vor%
Eine Lösung (die Antworten auf Marken optimiert) besteht darin, yAxis.labels.formatter
mit this.isFirst
und this.axis.dataMin
zu verwenden. so:
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.
Tags und Links javascript highcharts