Javascript 在Highcharts中更改图表类型时修复/贴现数据系列
我用它来显示两个系列的数据。第一个是原始数据,第二个是基于初始数据计算的趋势线。问题是,当改变图表类型时,它将趋势线计算为一个相等的系列,并将其与第一个系列一起叠加/绘制 我试图:Javascript 在Highcharts中更改图表类型时修复/贴现数据系列,javascript,highcharts,Javascript,Highcharts,我用它来显示两个系列的数据。第一个是原始数据,第二个是基于初始数据计算的趋势线。问题是,当改变图表类型时,它将趋势线计算为一个相等的系列,并将其与第一个系列一起叠加/绘制 我试图: 将趋势线数据保留为虚线类型,仅更改主数据图表类型 --或者-- 如果无法保持趋势线不变,则删除/贴现趋势线 我已经把确切的问题放在JSFIDLE上了 HTML下拉列表: <select id="chartType"> <option value="spline">Spline</
- 将趋势线数据保留为虚线类型,仅更改主数据图表类型
--或者-- - 如果无法保持趋势线不变,则删除/贴现趋势线
<select id="chartType">
<option value="spline">Spline</option>
<option value="line">Line</option>
<option value="column">Column</option>
<option value="area">Area</option>
</select>
$('#chartType').change(function(){
changeType(chart.series, this.value);
});
function changeType(series, newType) {
serie = series[0];
serie.chart.addSeries({
type: newType,
name: serie.name,
color: serie.color,
data: serie.options.data
}, false);
serie.remove();
chart.redraw();
}
series: [
{
lineWidth: 6,
name: 'Primary data',
data: [59.359,60.395,68.830,70.290,73.259,81.344,60.113,60.113,80.644,110.929,96.731,78.104]
},
{
lineWidth: 3,
dashStyle: 'dash',
name: 'Trend-line',
color: '#999999',
shadow: 0,
data: [59.259,62.123,64.986,67.850,70.714,73.577,76.441,79.305,82.168,85.032,87.896,90.759]
}
]
我在函数中使用了系列[0]
作为主要数据-因为它是第一个要加载的系列,但当我随机循环使用下拉选项时,它似乎几乎循环了系列-更改趋势线的图表类型。。。这几乎就像是更新的系列订单交换后改变类型
有什么想法/技巧/解决方案吗
系列数据:
<select id="chartType">
<option value="spline">Spline</option>
<option value="line">Line</option>
<option value="column">Column</option>
<option value="area">Area</option>
</select>
$('#chartType').change(function(){
changeType(chart.series, this.value);
});
function changeType(series, newType) {
serie = series[0];
serie.chart.addSeries({
type: newType,
name: serie.name,
color: serie.color,
data: serie.options.data
}, false);
serie.remove();
chart.redraw();
}
series: [
{
lineWidth: 6,
name: 'Primary data',
data: [59.359,60.395,68.830,70.290,73.259,81.344,60.113,60.113,80.644,110.929,96.731,78.104]
},
{
lineWidth: 3,
dashStyle: 'dash',
name: 'Trend-line',
color: '#999999',
shadow: 0,
data: [59.259,62.123,64.986,67.850,70.714,73.577,76.441,79.305,82.168,85.032,87.896,90.759]
}
]
现在的情况是,您每次都在看系列[0]。但由于每次删除趋势线,然后添加新的趋势线,所以系列[0]每次都会发生变化 因此,您需要做的是增加一致性,如:
for ( i = 0 ; i < series.length ; i++ ) {
if ( series[i].name == 'Primary data' ) {
serie = series[i];
}
}
// serie = series[0];
for(i=0;i
发生的事情是,您每次都在看系列[0]。但由于每次删除趋势线,然后添加新的趋势线,所以系列[0]每次都会发生变化
因此,您需要做的是增加一致性,如:
for ( i = 0 ; i < series.length ; i++ ) {
if ( series[i].name == 'Primary data' ) {
serie = series[i];
}
}
// serie = series[0];
for(i=0;i
我知道它就在addseries()
附近,但在我到达之前你就把它钉死了!谢谢。我知道它就在addseries()
附近,但在我到那里之前你就搞定了!谢谢