我使用Flotr2取得了巨大成功。现在我们用时间模式实现了它。这就像一个魅力。但现在客户只想显示季度(即 20013-1、2013-2)。
现在 Flotr2,自动缩放数据以适应图形。但是因为没有一个季度的大小相同,所以这失败了。
所以我的问题是,是否可以在 Flotr2 中(在 x 轴上)添加四分之一。如果是这样,在宇宙中是否有一个我没有找到的例子?
我使用Flotr2取得了巨大成功。现在我们用时间模式实现了它。这就像一个魅力。但现在客户只想显示季度(即 20013-1、2013-2)。
现在 Flotr2,自动缩放数据以适应图形。但是因为没有一个季度的大小相同,所以这失败了。
所以我的问题是,是否可以在 Flotr2 中(在 x 轴上)添加四分之一。如果是这样,在宇宙中是否有一个我没有找到的例子?
最好的解决方案是结合使用 xaxis ticks 选项和刻度格式化程序:
xaxis: {
ticks : [],
tickFormatter: function () {}
}
编写一个函数来为您的范围返回一个季度开始日期或中位数等数组。他们应该在毫秒。
然后格式化程序可以输出您正在寻找的日期格式,如上所述。
好吧,它不是 100% 令人满意,但它“有效”
对于折线图,我删除了时间模式并添加了noTicks: 12
它可以更改,但由于时间(主要是几个月)的性质不同,这变得非常需要,因此 xaxis 标签工作正常。
接下来我tickFormatter
在 xaxis添加了一个
xaxis 设置:
xaxis:{
noTicks: 15,
tickFormatter: function (x) {
var d = new Date(parseInt(x));
var month = d.getMonth();
if (parseInt(month / 3) == month / 3) {
return msToYearQuarter(parseInt(x));
}
return '';
}
},
要将毫秒转换为“年-季度”,我做了一个简单的函数
function msToYearQuarter(ms) {
var date = new Date(ms);
var quarter = (date.getMonth() / 3) + 1;
var year = date.getFullYear();
return year + '-' + quarter;
}