【发布时间】:2011-04-28 15:19:02
【问题描述】:
当使用 flot 时,我希望有一个基于字符串的 x 轴。例如,我有一个客户列表“Bob”、“Chris”、“Joe”,并且想在 Y 轴上绘制他们的收入。 (这是条形图)
乍一看,flot 似乎只支持 x 轴上的数字类型。这是真的吗?
【问题讨论】:
标签: flot
当使用 flot 时,我希望有一个基于字符串的 x 轴。例如,我有一个客户列表“Bob”、“Chris”、“Joe”,并且想在 Y 轴上绘制他们的收入。 (这是条形图)
乍一看,flot 似乎只支持 x 轴上的数字类型。这是真的吗?
【问题讨论】:
标签: flot
【讨论】:
类别插件 (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
【讨论】:
您应该能够按照this question 使用tickFormatter 选项来执行此操作。我自己没有尝试过,但试一试:
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, ...
【讨论】:
transform:function (x) { return xAxisLabelGenerator(x); } 是一种不必要的冗长,虽然是等效的,但我的答案是:transform: xAxisLabelGenerator。