亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在數組問題中存儲 Highcharts

在數組問題中存儲 Highcharts

呼如林 2021-12-23 14:50:22
我正在循環中動態繪制多個高圖并將每個高圖推送到一個數組。這樣在單擊外部按鈕時,我就可以導出圖表。但是在將圖表推送到數組時,只有最后一個條目正確設置了選項。我參考了一個建議克隆選項的小提琴。[https://jsfiddle.net/ndb21y1w/][2]https://www.highcharts.com/forum/viewtopic.php?t=38574小提琴在所有圖表上都繪制了相同的系列數據。如果填充的每個圖表的數據不同,如何解決這個問題。提前感謝您的任何幫助。使問題更加清晰:數據在循環中動態填充。我的代碼邏輯是這樣的:counter i; setInterval(function() {//logic to populated data...//It is a multiline chart, so three sets of arrays are populated. //filling data1[], data2[] and data3[] .drawChart(data1, data2, data3);if(condition true) clearInterval();i++;});drawChart(data1, data2, data3) {var chart = new Highcharts.Chart({ title: {            text: "title",        },        xAxis: {            categories: [1,2,3,4...],        },    series: [{        type: 'line',        data: data1,    }, {        type: 'line',        data: data2,    }, {        type: 'line',        data: data3,    },});chartArray.push(chart);}這個 chartArray 是我提到只能正確獲取最后一個條目的地方。
查看完整描述

3 回答

?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

要創建圖表,您必須傳遞一個將成為圖表容器的 HTML 元素。在您的代碼中缺少什么。檢查我準備重現這個問題的演示:https : //jsfiddle.net/BlackLabel/c60y1t2v/


代碼:


var chartArray = [],

  counter = 1,

  dataArr = [

    [1, 2, 3],

    [4, 5, 6],

    [7, 8, 9]

  ],

  containers = document.getElementById('containers');


function drawChart(data) {

  var cnt = document.createElement('div'),

    cntId = 'container' + counter++,

    chart;


  cnt.setAttribute('id', cntId);

  containers.appendChild(cnt);


  chart = new Highcharts.Chart(cntId, {

    title: {

      text: "title",

    },

    xAxis: {

      categories: [1, 2, 3, 4],

    },

    series: [{

      type: 'line',

      data: data,

    }]

  });


  return chart;

}


dataArr.forEach(function(data) {

  var chart = drawChart(data);


  chartArray.push(chart);

});


查看完整回答
反對 回復 2021-12-23
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

存儲圖表選項,Array然后映射到每個選項的 Initialize Highchart。


var chartArray = [];


function drawChart(data1, data2, data3, i) {

// Create container for charts

const el = document.createElement('div');

document.body.appendChild(el).setAttribute("id", "container"+i);


// Create charts

var chart = new Highcharts.chart(el, {

  series: [{

    type: 'line',

    data: data1,

  }, {

    type: 'line',

    data: data2,

  }, {

    type: 'line',

    data: data3,

  }]

});

chartArray.push(chart);

console.log(chartArray);

}


var counter = 0;

var delayTime = 2000;

var timer = setInterval(function(){

  var data1 = [30, 70, 50];

  var data2 = [40, 70, 60];

  var data3 = [10, 90, 20];

  drawChart(data1, data2, data3, counter);

  if(counter == 2){

    clearInterval(timer);

  }

  counter++;

},delayTime);

<script src="https://code.highcharts.com/highcharts.js"></script>


查看完整回答
反對 回復 2021-12-23
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

要將HTML打印為PDF,您可以使用此軟件“ wkhtmltopdf ”

在 Linux 中你需要使用這個命令:

sudo apt-get install wkhtmltopdf

有許多基于“wkhtmltopdf”的多種語言的庫,因此您可以使用它。


PHP 庫:https : //github.com/mikehaertl/phpwkhtmltopdf


查看完整回答
反對 回復 2021-12-23
  • 3 回答
  • 0 關注
  • 260 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號