50 votes

Flot With "String" axe des x

Lors de l'utilisation de flot, j'aimerais disposer d'un axe x basé sur une chaîne. Par exemple, j'ai une liste de clients "Bob", "Chris", "Joe" et j'aimerais tracer leurs revenus sur l'axe des ordonnées. (ceci est un graphique à barres)

À première vue, il semble que flot ne prenne en charge que les types numériques sur l’axe des x. Est-ce vrai?

84voto

Ryley Points 11916

@Matt est proche, mais il serait plus logique d'utiliser simplement l'option ticks pour spécifier directement quels ticks doivent avoir quelles étiquettes:

 var options = {

...
  xaxis: {
    ticks: [[0,'Bob'],[1,'Chris'],[2,'Joe']]
  }
...

};
 

EDIT : cela ressemble à ceci (j'ai ajouté plus de données que d'étiquettes, mais vous voyez l'idée).

18voto

Matt Ball Points 165937

Vous devriez pouvoir le faire en utilisant l'option tickFormatter selon cette question . Je n'ai pas essayé moi-même, mais tentez ceci:

 var xAxisLabels = ['Bob', 'Chris', 'Joe'];

function xAxisLabelGenerator(x)
{
    return xAxisLabels[x];
}

var plot = $.plot($("#placeholder"), { 
    // snip other options...
    xaxis: {
        transform: xAxisLabelGenerator,
        tickFormatter: xAxisLabelGenerator }
 

});

Cela signifie que les valeurs x réelles doivent être 0, 1, 2, ...

18voto

ak112358 Points 353

Le plugin Categories (jquery.flot.categories.js) le fera très bien, afin que les données puissent être formatées comme ceci:

 var data = [ ["January", 10], ["February", 8], ["March", 4], ["April", 13], ["May", 17], ["June", 9] ];
 

et complot comme ceci: entrez la description de l'image ici

Voir: http://www.flotcharts.org/flot/examples/categories/index.html

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