我很难将我的数据按月份分组。我什至以编程方式过滤我的数据以仅返回该月的最后一天并计算每月值。我试图在“dataGrouping”属性上找到一个很好的解释,但没有运气理解它,也没有正确实施它。每个结果每天都会返回我的系列。
我的问题如下:
- 数据分组工作需要最少数量的数据点吗?
- 在dataGrouping.units下,我尝试使用此文档,但对我没有任何帮助-仍然导致每天间隔-有人可以为我解释一下吗?
对此的任何帮助将不胜感激。
我很难将我的数据按月份分组。我什至以编程方式过滤我的数据以仅返回该月的最后一天并计算每月值。我试图在“dataGrouping”属性上找到一个很好的解释,但没有运气理解它,也没有正确实施它。每个结果每天都会返回我的系列。
我的问题如下:
对此的任何帮助将不胜感激。
您使用的是 HighStock 图表吗?
如果是...
当然,分组需要大量数据。如果启用数据分组选项,Highstock 会自动处理每个分组模式之间的切换。因此,如果您没有大量数据,它将无法使用默认设置
因此,如果要默认分组,则需要强制分组。
series:[{
[...]
dataGrouping: {
approximation: "sum",
enabled: true,
forced: true,
units: [['month',[1]]]
}
}]
编辑
这是一个工作示例演示(基本 highstock 演示的分支) http://jsfiddle.net/NcNvu/
希望能帮助到你!问候
我们围绕这个尝试了一个 Hack,我们使用了 Highstock 的(Splinechart)RangeSelector、 Event 和DataGrouping。单击每周 rangeselectorButton 时,我们通过setExtremes捕获此事件。捕获事件后将其近似为“总和”。如果您使用两个系列而不是迭代对象。目前每周进行一次,只需使用相应的 UNIT 将其扩展为每月一次
events: {
setExtremes: function (e) {
if (e.rangeSelectorButton != undefined) {
var triger = e.rangeSelectorButton;
if (triger.type == 'week') {
$.each(this.series, function (index, obj) {
obj.options.dataGrouping.units[0] = ['week', [1]];
});
} else if (triger.type == 'day') {
$.each(this.series, function (index, obj) {
obj.options.dataGrouping.units[0] = ['day', [1]];
});
}
}
}
},