用“String”x轴绘制

时间:2011-04-28 15:19:02

标签: flot

当使用flot时,我希望有一个基于x轴的字符串。例如,我有一个客户列表“鲍勃”,“克里斯”,“乔”,并希望在Y轴上绘制他们的收入。 (这是一个条形图)

乍一看,flot只支持x轴上的数字类型。这是真的吗?

3 个答案:

答案 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] ];

并且这样的情节: enter image description here

请参阅:http://www.flotcharts.org/flot/examples/categories/index.html

答案 2 :(得分:16)

您应该可以使用tickFormatterthis 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, ...