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
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
}
Vous pouvez ajouter à votre axe Y:
yAxis: {
title: {
text: 'Title of the y-axis'
},
min: 0 // this sets minimum values of y to 0
},
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
}
},
});
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.
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