我们正致力于创建一个股票图表,显示几个项目甚至计数及其相对百分比随时间的变化。数据是每月一次,我们设置了一个范围选择器,允许6个月,9个月,1年和所有数据。在初始加载时,我们选择6个月的范围。我们注意到一些奇怪的效果。以下是表示问题的示例jsFiddle: http://jsfiddle.net/wergeld/wq7eavq4/
rangeSelector代码:
rangeSelector: {
inputEnabled: false,
allButtonsEnabled: false,
buttons: [{
type: 'month',
count: 6,
text: '6 Months'
}, {
type: 'month',
count: 9,
text: '9 Months'
}, {
type: 'year',
count: 1,
text: 'Year'
}, {
type: 'all',
text: 'All'
}],
buttonTheme: {
width: 60
},
selected: 0
},
1)在初始加载时,0%"开始"发生在2014年10月的数据点,并从这一点计算相对百分比的变化。然而,图表中显示的第一点实际上是2014年9月。这与(我猜)2014年10月相比有一些变化。
2)当我们将选择更改为9个月范围选择器时,我们看到2014年6月的第一个点是0%值。然后,如果我们点击回到6个月的范围选择器值,您可以看到现在我们将2014年9月作为0%,并且后期的百分比差异都与初始加载时不同。
我的问题是:
一个。当我将rangeSelector
的计数设置为6时,为什么会显示7个月?为什么在我将其设置为9个月时为其他范围选择器显示10个月?基本上对于给定的rangeSelector.count
我得到的比我预期的多1个。
湾为什么初始负载的0%点与我点击该范围并返回该范围时的点不同?
答案 0 :(得分:1)
这与两个错误有关:
它是在图表完全呈现之前在核心设置极值引起的。可能的解决方法是放弃selected
选项并创建自己的选项来处理此问题:http://jsfiddle.net/wq7eavq4/6/
chart: {
events: {
load: function () {
var selected = this.options.rangeSelector.selectedAfter,
undefined;
if (selected !== undefined) this.rangeSelector.clickButton(selected, true); //set when defined
}
}
},
rangeSelector: {
selectedAfter: 1 // custom param
},
唯一的缺点是缺少初始动画。