Wie setze ich eine obere Grenze für eine Achse in Highcharts?

8

Ich versuche eine Mindestobergrenze festzulegen, insbesondere:

  • Die Y-Achse sollte bei 0
  • beginnen
  • Die Y-Achse sollte mindestens 10 oder höher sein (automatisch skalieren)
  • Die obere Grenze für die Y-Achse sollte niemals kleiner als 10 sein.

Scheint so etwas wie Highcharts, aber ich kann nicht herausfinden, wie. Hat jemand Erfahrung damit?

    
Andrew Dunkman 08.02.2012, 22:00
quelle

5 Antworten

12

Highcharts scheint keine Möglichkeit zu haben, dies zur Zeit der Kartenerstellung zu tun. Allerdings stellen sie eine Reihe von Methoden zur Verfügung, um die Extreme zu hinterfragen und die Extreme, getExtremes() und setExtremes(Number min, Number max, [Boolean redraw], [Mixed animation]) in ihren zu ändern Dokumentation .

Also eine mögliche Lösung (nach der Chart-Erstellung):

%Vor%

yAxis[0] referenziert die erste y-Achse, und ich nehme an, dass Sie in diesem Fall nur eine Achse haben. Das Dokument erläutert den Zugriff auf andere Achsen.

Das ist nicht ideal, weil das Diagramm neu gezeichnet werden muss, was nicht auffällt, aber es ist immer noch da. Hoffentlich konnte Highcharts diese Funktionalität in die Optionen integrieren.

    
smerchek 08.02.2012, 22:39
quelle
9

Eine Möglichkeit, dies nur mithilfe von Optionen (keine Ereignisse oder Funktionen) zu tun, ist:

%Vor%

Hier definiert minRange die Mindestspanne der Achse. maxPadding ist standardmäßig auf 0.01 gesetzt, was die Achse länger als 10 machen würde, also setzen wir sie stattdessen auf 0.

Dies ergibt die gleichen Ergebnisse wie ein setExtreme ergeben würde. Siehe diese JSFiddle-Demonstration .

    
Halvor Strand 15.08.2014 20:15
quelle
3

Hinzufügen zu Julian Ds sehr gute Antwort , das folgende vermeidet ein mögliches Problem der Neupositionierung, wenn Ihr berechneter Max in der Anzahl der Ziffern bis zu Ihrer gewünschten oberen Grenze variiert.

In meinem Fall hatte ich prozentuelle Daten, die gerade in die 20er gehen, aber ich wollte einen Bereich von 0 bis mindestens 100, mit der Möglichkeit, über 100 zu gehen, wenn es erforderlich ist, so dass die folgenden Sätze min & amp; max im Code, wenn dataMax höher ist, wird max bis zu seinem Wert neu zugewiesen. Dies bedeutet, dass die Graph-Positionierung immer mit ausreichend Platz für 3-stellige Werte berechnet wird, anstatt für 2-stellige Werte, dann gebrochen durch Drücken von "100", aber bis "999", bevor es als nächstes ein Problem geben würde. p> %Vor%     

David Bell 06.11.2013 16:55
quelle
1

HigtCharts hat eine wirklich gute Dokumentation aller Methoden mit Beispielen.

Ссылка

In deinem Fall denke ich, du solltest die "min" und "max" Eigenschaften von "yAxis" haben.

  

min: Nummer   Der Mindestwert der Achse. Wenn Null, wird der Min-Wert automatisch berechnet. Wenn die startOnTick-Option wahr ist, wird der min-Wert möglicherweise abgerundet. Der Standardwert ist null.

     

max: Anzahl   Der maximale Wert der Achse. Wenn null, wird der Maximalwert automatisch berechnet. Wenn die endOnTick-Option wahr ist, kann der max-Wert aufgerundet werden. Der tatsächliche Maximalwert wird auch von chart.alignTicks beeinflusst. Der Standardwert ist null.

Wenn Sie Ihr Diagramm dynamisch erstellen, sollten Sie

festlegen

min = 0 max = 10, wenn alle Datenwerte kleiner als 10 sind

und

nur min = 0, wenn der Wert größer als 10 ist

Viel Glück.

    
gotqn 08.02.2012 22:39
quelle
1

Versuchen Sie, den Minimalwert der Achse und das Intervall der Teilstriche in Achseneinheiten wie folgt einzustellen:

%Vor%

Vergessen Sie auch nicht den Maximalwert einzustellen.

Ich hoffe, das hilft.

    
marknatividad 10.04.2012 00:57
quelle

Tags und Links