web-dev-qa-db-fra.com

Définissez la valeur minimale de l'axe des ordonnées sur 0, sauf s'il existe des données négatives

J'ai un problème avec les highcharts où j'ai un certain nombre de graphiques différents générés par les appels JSON.

Pour la majorité de ces graphiques, j'ai besoin que la valeur minimale de l'axe y soit fixée à 0, mais il y a quelques occasions où des valeurs négatives doivent être affichées. Comment est-ce que je peux dire aux highcharts d'avoir une valeur minimale de l'axe des y de 0 seulement s'il n'y a pas de valeurs négatives dans les données, est-ce même possible?

Merci

26
Pryor74

L'option que vous recherchez s'appelle softMin et a été introduite dans la version 5.0.1 . Les documents le décrivent comme suit:

Un minimum doux pour l'axe. Si le minimum des données de la série est supérieur à cela, l'axe restera à ce minimum, mais si le minimum des données de la série est inférieur, l'axe fléchira pour afficher toutes les données.

yAxis: {
    softMin: 0
}

http://api.highcharts.com/highcharts/yAxis.softMin

10
Yoav Kadosh

Vous pouvez ajouter à votre axe Y:

 yAxis: {
            title: {
                text: 'Title of the y-axis'
            },
            min: 0 // this sets minimum values of y to 0
        },
8
occulti

J'ai réalisé cela en créant une fonction en utilisant setExtremes

var setMin = function () {
  var chart = this,
  ex = chart.yAxis[0].getExtremes();

  // Sets the min value for the chart 
  var minVal = 0;

  if (ex.dataMin < 0) {
    minVal = ex.dataMin;
  }

  //set the min and return the values
  chart.yAxis[0].setExtremes(minVal, null, true, false);
}

puis dans votre graphique, vous l'appelez comme ceci:

$('#container').highcharts({ 
  chart: {
    events: {
      load: setMin
    }
  },
});  
7
wf4

Vous pouvez définir le "plancher", cela définit la valeur minimale possible pour min. Lorsque des valeurs négatives sont ajoutées, elles ne seront pas visibles! ( http://api.highcharts.com/highcharts/xAxis.floor )

yAxis: {
    floor: 0
}

Je sais que cette question a été posée depuis longtemps et cette propriété n'existait pas à l'époque. Mais je viens de rencontrer ce problème et je pense que les autres seront heureux de ne pas avoir à chercher.

4
Nathan Poirier

Vous pouvez préparer votre propre fonction dont la vérification est négative ou non, puis définir les graduations appropriées. Pour y parvenir, vous devez utiliser tickPositioner http://api.highcharts.com/highcharts#yAxis.tickPositioner

2