2017-08-20 10 views
0

以下は、グラフ自体が生成された後にグラフのイメージを生成するコードです。 画像のみを見たいです。それは可能ですか?グラフの画像のみを表示する方法

グラフのdivにdisplay: none;を試しましたが、画像も見えません。

$(function() { 

    var ctx = document.getElementById('myChart'); 

     var myChart = new Chart(ctx, { 
      type: 'line', 
       data: { 
       labels: ["July","August","September","October","November","December","January","February","March","April"], 
       datasets: [ 
        { 
         label: 'This year', 
         data: [340,0,450,3240,360,200,0,0,1445,350], 
        } 
        , { 
         label: 'Last year', 
         data: [330,340,100,160,560,3600,320,0,397.5,300], 
        } 
       ] 
      }, 

      options: { 
       maintainAspectRatio: false, 
       responsive: true, 
       animation: { 
        onComplete: function(animation){ 
         document.querySelector('#myChart').setAttribute('href', this.toBase64Image()); 
         document.querySelector('#myImage').setAttribute('src', this.toBase64Image()); 
        } 
       } 
      } 
     }); 

}) 
+0

あなたはフィドルを投稿することができますか? – Roysh

+0

私は試みましたが、結果はありませんでした。とにかく、@ naren-muraliはフィドルに投稿しました。 – ilvthsgm

答えて

2

質問に基づいて、私はフィドルを作成しました。次の行を使用してグラフを削除します。

   animation: { 
        duration: 0, 
        onComplete: function(animation){ 
         document.querySelector('#myChart').remove(); 
         document.querySelector('#myImage').setAttribute('src', this.toBase64Image()); 
        } 
       } 

JSFiddle:here

+0

ありがとうございました。チャート自体は、削除される前のいつかスペースを占有します。これを防ぐことができますか? – ilvthsgm

+1

このようにしたいですか? https://jsfiddle.net/Kai_Draord/yd9cfvwg/3/、チャートはレンダリングに少し時間がかかります。 –

+0

これは間違いなく受け入れられた答えです。もう一度ありがとうございます。答えを改善するために、レンダリングする時間を減らす方法はありますか? – ilvthsgm

関連する問題