当使用flot时,我希望有一个基于x轴的字符串。例如,我有一个客户列表“鲍勃”,“克里斯”,“乔”,并希望在Y轴上绘制他们的收入。 (这是一个条形图)
乍一看,flot只支持x轴上的数字类型。这是真的吗?
答案 0 :(得分:83)
@Matt已接近,但仅使用ticks
选项直接指定哪些刻度应包含哪些标签更有意义:
var options = {
...
xaxis: {
ticks: [[0,'Bob'],[1,'Chris'],[2,'Joe']]
}
...
};
编辑:它看起来像this(我添加的数据多于标签,但你明白了。)
答案 1 :(得分:17)
Categories插件(jquery.flot.categories.js)可以很好地完成这项工作,因此数据可以这样格式化:
var data = [ ["January", 10], ["February", 8], ["March", 4], ["April", 13], ["May", 17], ["June", 9] ];
并且这样的情节:
请参阅:http://www.flotcharts.org/flot/examples/categories/index.html
答案 2 :(得分:16)
您应该可以使用tickFormatter
按this question选项执行此操作。我自己没试过,但试一试:
var xAxisLabels = ['Bob', 'Chris', 'Joe'];
function xAxisLabelGenerator(x){
return xAxisLabels[x];
}
var plot = $.plot($("#placeholder"), {
// snip other options...
xaxis: {
transform: xAxisLabelGenerator,
tickFormatter: xAxisLabelGenerator
}
});
这意味着实际的x值应为0, 1, 2, ...