簡體   English   中英

如何將兩個數組相乘並動態繪制成HighCharts?

[英]How to Multiply two arrays and dynamically plot into HighCharts?

JavaScript新手。 我正在嘗試使用一個已經繪制的序列乘以另一個已經繪制的序列在Highcharts中創建一個新序列。 如何添加具有自己的y軸的新系列? 我正在使用一些自己未完成的基本代碼。

ChartOptions.Series[index].data保存一個數組數組:因此,例如:[1563480488000,12.144]將是該系列中每個數據點的時間戳和數據值。

所以我想要這樣的事情: [1563480488000, 12.144] * [1563480488000, 1.0] = [1563480488000, 12.144]

那是12.144 * 1.0,並保留時間戳。

dynamicChart是一個new Highcharts.StockChart(chartOptions)它與我正在使用的代碼段不一樣。 我已經嘗試了以下代碼。

 var voltSeries = chartOptions.series[0].data;
 var ampSeries = chartOptions.series[1].data;
 var wattSeries = [];
 for(var i = 0; i <= voltSeries.length; i++){
    var valu = chartOptions.series[1].data[i,1]*chartOptions.series[0].data[i,1];
    wattSeries[i,1] = valu;
    wattSeries[i,0] = valu;

}
  eval('window.console && console.log(voltSeries)');
  eval('window.console && console.log(wattSeries)');
   dynamicChart.addSeries({
       name: 'Watts',
       data: wattSeries 
    });
dynamicChart.redraw();    

wattSeries的輸出是(2)[NaN,NaN]的數組,但是它應該是時間戳和乘數值。 而且無論我做什么,似乎我都無法繪制圖形。

問題是從數組中錯誤地獲取值。 對於嵌套數組,應使用多個括號: array[x][x]

var dynamicChart = Highcharts.chart('container', chartOptions);

var voltSeries = chartOptions.series[0].data,
    ampSeries = chartOptions.series[1].data,
    wattSeries = [],
    valu;

for (var i = 0; i < voltSeries.length; i++) {
    valu = voltSeries[i][1] * ampSeries[i][1];

    wattSeries.push([ampSeries[i][0], valu]);
}

dynamicChart.addSeries({
    name: 'Watts',
    data: wattSeries,
    yAxis: 1
});

現場演示: http //jsfiddle.net/BlackLabel/vpzLou6r/

API參考: https //api.highcharts.com/class-reference/Highcharts.Chart#addSeries

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM