我有一个高股票线图,显示给定股票的每日和每周股票价格。问题是当数据阵列足够大时,每日数据点被“采样”到每周数据点,每周数据点被采样到每月数据点。
有没有办法按用户将其设置为每周或每月需要。
提前致谢
答案 0 :(得分:7)
检查dataGrouping。
您可以将其设置为在需要时进行采样,例如example
或如果您想停用,可以将其设置为false,如下面的代码或here:
series: [{
type: 'candlestick',
name: 'AAPL',
data: arrayOfData,
dataGrouping: {
enabled: false
}
}]
答案 1 :(得分:2)
您可以随时通过每个系列更改dataGrouping.units
' update()
方法:
//http://api.highcharts.com/highstock#plotOptions.series.dataGrouping.units
var unit = 'week'; //'day' 'month'
//http://api.highcharts.com/highstock#Series.update
_chart.series.forEach(function(ser) {
ser.update({
dataGrouping: {
units: [ [unit, [1]] ]
}
}, false);
});
_chart.redraw();
答案 2 :(得分:-1)
我们尝试了围绕这个,我们使用Highstock(Splinechart)RangeSelector,事件和DataGrouping。点击每周rangeselectorButton,我们通过setExtremes捕获此事件。发布事件后,将其近似为“总和”。如果你使用两个系列而不是迭代对象。
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]];
});
}
}
}
},
@ fiddle