我在Highstock中创建了一个多序列图,每条线的数据从不同的日期开始。
- 基金A开始日期:2002年10月8日
- B基金启动日期:1995年11月15日
第一次加载时,图表的开始日期为1995年11月15日至最新数据日期。
如果我在日期选择器中手动输入超出范围的日期的开始日期,例如1990年11月15日,日期选择器将自动重置为基金A的开始日期2002年10月8日。
关于如何使其按照初始加载日期正确刷新,有什么想法吗?我想避免用户不得不再次单击范围选择器中的"全部"按钮。
供参考的链接https://jsfiddle.net/mrseia/j8d2Lrve/4/
$(function () {
var seriesOptions3 = [];
seriesCounter3 = 0;
var tl = document.getElementById('str').value;
var x = tl.split('|');
var fnd = document.getElementById('dataPoint').value;
var y = fnd.split(';');
var stripe = document.getElementById('stripe').value;
var z = stripe.split(',');
for(i=0; i<x.length; i++)
{
var data = eval(y[i]);
var name = x[i];
var strip = z[i];
seriesOptions3[seriesCounter3] =
{
name : name,
dashStyle : strip,
data : data
};
seriesCounter3++;
}
Highcharts.stockChart('cumChartResp',{
rangeSelector: {
selected: 5
},
legend: {
enabled: true,
align: 'center',
borderWidth: 0.5,
layout: 'horizontal',
verticalAlign: 'bottom',
itemStyle: {
color: '#000000',
fontWeight: 'bold',
fontSize: '14px'
},
symbolWidth: 42
},
credits: {
enabled: false,
text: 'Powered by Novagni',
href: 'http://www.novagni.com.my'
},
yAxis: {
title: {
text: 'Cumulative Returns (%)'
},
labels: {
formatter: function () {
return (this.value > 0 ? ' + ' : '') + this.value + '%';
}
},
plotLines: [{
value: 0,
width: 2,
color: 'silver'
}]
},
plotOptions:{
series:{
dataGrouping:{
enabled: false
},
compare: 'percent',
compareStart: true,
lineWidth: 3
}
},
tooltip: {
pointFormat: '<span style="color:{series.color}">{series.name}</span>: {point.change}%<br/>',
valueDecimals: 2,
split: true,
xDateFormat: '%A, %b %d, %Y'
},
//<b>{point.y}</b> ({point.change}%)<br/> '%d-%m-%Y'
title: {
text: 'Cumulative Returns',
style: {
color: '#333333',
fontWeight: 'bold',
fontSize: '18px'
}
},
subtitle: {
text: 'The Start Date for all cumulative returns calculation for the periods of 1m, 3m, 6m & 1y is based in reference to the latest Start Date amongst the selected funds',
style: {
color: '#333333',
fontSize: '14px'
}
},
colors: ['#0067B1', 'black', '#865439', '#00FF00', '#FFD700'],
exporting: { enabled: false },
series: seriesOptions3
});
})
发生这种情况是因为rangeSelector
从导航器中获取了极端值。您可以为每个系列设置showInNavigator: true
以避免这种行为。
演示:https://jsfiddle.net/BlackLabel/njpe98hx/