56 votes

Définition d'une valeur minimale pour l'axe dans l'API Google Charts

J'essaie de créer un Google Chart pour montrer des pourcentages de temps de fonctionnement et d'indisponibilité, empilés. Cela fonctionne très bien à l'exception d'une petite chose - j'aimerais que la ligne de base du graphique soit à 99,8, et le maximum à 100 - puisque les temps d'arrêt sont généralement inférieurs à 0,2, cela rendra le graphique lisible.

Cela me semblait assez simple. Je me suis dit que cela fonctionnerait :

var data = new google.visualization.DataTable();
data.addColumn('string', 'Date');
data.addColumn('number', 'Uptime');
data.addColumn('number', 'Downtime');
data.addRows([
  ['Dec 1, 1830',   99.875, 0.125],
  ['Dec 8, 1830',   99.675, 0.325],
  ['Dec 15, 1830',  99.975, 0.025],
  ['Dec 22, 1830',  100.0,  0.0]
]);

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data, {width: 400, height: 240, isStacked: true, vAxis: { title: "Percentage Uptime", minValue: 99.8, maxValue: 100}});

Malheureusement, le graphique ne tient absolument pas compte de la valeur min de l'axe v. Cela semble être un comportement attendu, selon l'API, mais la question qui se pose est la suivante : comment puis-je y parvenir ? Je suis même allé jusqu'à transformer les données - c'est-à-dire soustraire 99,8 de toutes les valeurs de temps de fonctionnement, et faire en sorte que le graphique aille de 0 à .2, et cela produit un graphique qui semble correct, mais je ne peux pas appliquer d'étiquettes à l'axe vertical qui indiquerait 99,8, 99,85, 99,9, peu importe - l'axe indique, tout à fait consciencieusement, 0 en bas, et .2 en haut, et il semble qu'il n'y ait aucun moyen de le corriger dans cette direction, non plus. L'une ou l'autre solution serait acceptable, je suis sûr qu'il y a un moyen de faire fonctionner cela ?

81voto

Nikes Points 445

Vous devez définir viewWindow comme suit :

var data = new google.visualization.DataTable();
data.addColumn('string', 'Date');
data.addColumn('number', 'Uptime');
data.addColumn('number', 'Downtime');
data.addRows([
 ['Dec 1, 1830',   99.875, 0.125],
  ['Dec 8, 1830',   99.675, 0.325],
  ['Dec 15, 1830',  99.975, 0.025],
  ['Dec 22, 1830',  100.0,  0.0]

]);

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
chart.draw(data,
           {width: 400, 
            height: 240, 
            isStacked: true,
            vAxis: { 
              title: "Percentage Uptime", 
              viewWindowMode:'explicit',
              viewWindow:{
                max:100,
                min:99.8
              }
            }
            }                 
          );

//édité pour une version plus récente de l'api

21voto

J'ai eu un problème similaire et j'ai dû spécifier la propriété comme étant "min" et non "minValue"

vAxis: { 
    viewWindowMode:'explicit',
    viewWindow: {
        max:100,
        min:99.8
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X