Lorsque j'utilise flot, j'aimerais avoir un axe x basé sur une chaîne. Par exemple, j'ai une liste de clients "Bob", "Chris", "Joe" et je voudrais tracer leurs revenus sur l'axe Y. (ceci est un graphique à barres)
Il semble à première vue que flot ne supporte que les types numériques sur l'axe des x. Est-ce vrai?
@ 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']]
}
...
};
[~ # ~] éditez [~ # ~] : il ressemble à this (J'ai ajouté plus de données que d'étiquettes, mais vous avez eu l'idée).
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 tracer comme ceci:
Voir: http://www.flotcharts.org/flot/examples/categories/index.html
Vous devriez pouvoir le faire en utilisant l'option tickFormatter
selon cette question . Je ne l'ai pas essayé moi-même, mais essayez 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, ...