用"String"x轴绘制

Chr*_*nch 50 flot

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

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

Ryl*_*ley 84

@Matt很接近,但是使用该ticks选项直接指定哪些刻度应具有哪些标签会更有意义:

var options = {

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

};
Run Code Online (Sandbox Code Playgroud)

编辑:它看起来像这样(我添加的数据多于标签,但你明白了).

  • 还有一个"类别"插件:http://www.flotcharts.org/flot/examples/categories/ - 但我暂时还没有在x轴上有适当的标签:/ (2认同)

Mat*_*all 18

tickFormatter根据此问题,您应该能够使用该选项执行此操作.我自己没试过,但试一试:

var xAxisLabels = ['Bob', 'Chris', 'Joe'];    
function xAxisLabelGenerator(x){
    return xAxisLabels[x];
}

var plot = $.plot($("#placeholder"), { 
    // snip other options...
    xaxis: {
       transform: xAxisLabelGenerator,
       tickFormatter: xAxisLabelGenerator 
    }
});
Run Code Online (Sandbox Code Playgroud)

这意味着实际的x值应该是 0, 1, 2, ...

  • @KasperSkov`transform:function(x){return xAxisLabelGenerator(x); ``是一种不必要的冗长,虽然是等价的,但在我的答案中写出了什么:`transform:xAxisLabelGenerator`. (2认同)

ak1*_*358 18

Categories插件(jquery.flot.categories.js)可以很好地完成这项工作,因此数据的格式如下:

var data = [ ["January", 10], ["February", 8], ["March", 4], ["April", 13], ["May", 17], ["June", 9] ];
Run Code Online (Sandbox Code Playgroud)

和这样的情节: 在此输入图像描述

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