2016-11-21 152 views
1

我使用chart.js之與下面的HTML:綁定表到畫布高度寬度

<canvas id="fisheye" width="100" height="100" style="border:1px solid;"></canvas> 

這是JavaScript部分:

getChart: function() { 
     var ctx = document.getElementById("fisheye"); 
     var myChart = new Chart(ctx, { 
      type: 'bar', 
      data: { 
       labels: ["json1", "json2", "json3", "json4"], 
       datasets: [{ 
        label: '1.3.0 Version', 
        type: 'bar', 
        data: [52.4060092977, 90.0854057722, 196.576968515, 77.6216726434], 
        backgroundColor: [ 
         'rgba(255, 99, 132, 0.2)', 
         'rgba(255, 99, 132, 0.2)', 
         'rgba(255, 99, 132, 0.2)', 
         'rgba(255, 99, 132, 0.2)' 
         // 'rgba(54, 162, 235, 0.2)', 
         // 'rgba(255, 206, 86, 0.2)', 
         // 'rgba(75, 192, 192, 0.2)' 
        ], 
        borderColor: [ 
         'rgba(255,99,132,1)', 
         'rgba(255,99,132,1)', 
         'rgba(255,99,132,1)', 
         'rgba(255,99,132,1)' 
         // 'rgba(54, 162, 235, 1)', 
         // 'rgba(255, 206, 86, 1)', 
         // 'rgba(75, 192, 192, 1)' 
        ], 
        borderWidth: 1 
       }, 
       { 
        label: '1.3.13 Version', 
        type: 'bar', 
        data: [50.0744953192, 93.5542439586, 153.288788005, 101.402897964], 
        backgroundColor: [ 
         'rgba(54, 162, 235, 0.2)', 
         'rgba(54, 162, 235, 0.2)', 
         'rgba(54, 162, 235, 0.2)', 
         'rgba(54, 162, 235, 0.2)' 
         // 'rgba(255, 206, 86, 0.2)', 
         // 'rgba(75, 192, 192, 0.2)', 
         // 'rgba(153, 102, 255, 0.2)' 
        ], 
        borderColor: [ 
         'rgba(54, 162, 235, 1)', 
         'rgba(54, 162, 235, 1)', 
         'rgba(54, 162, 235, 1)', 
         'rgba(54, 162, 235, 1)' 
         // 'rgba(255, 206, 86, 1)', 
         // 'rgba(75, 192, 192, 1)', 
         // 'rgba(153, 102, 255, 1)' 
        ], 
        borderWidth: 1 
       } 
       ] 
      }, 
      options: { 
       title: { 
        display: true, 
        text: 'Export Chart' 
       }, 
       legend: { 
        display: true, 
       }, 
       scales: { 
        yAxes: [{ 
         ticks: { 
          beginAtZero:true, 
          stepSize:50 
         } 
        }] 
       }, 
       responsive: true 
      } 
     }); 
     return myChart; 
    } 

我的問題是,我的圖表似乎擴大以全屏高度和寬度。 我想將我的圖表大小限制爲畫布大小。這樣我就可以將圖表放在一個網格中而不是每頁 (注意:我只顯示了只有一個圖表的代碼,但您可以想象它與其他圖表相似)

回答

1

包裝畫布可能更容易在一個div/span /東西,並在那裏設置大小。正如你已經設置了響應:true這意味着chart.js會嘗試在調整大小時填充父項,並通過設置畫布高度和寬度來完成此操作。 https://jsfiddle.net/zpvfph9m/1/

<div style="width:50%"> 
    <canvas id="fisheye" width="400" height="400"></canvas> 
</div> 
請問

這對你的工作?

+0

我該如何將數據集外部化爲某個文件。這裏有很多重複,我想在上面的代碼中外部化數據塊來分離文件。代碼提示表示讚賞。我是新手爲Javascript :( – katch

+0

確定我外在使用另一個JavaScript我曾在同一的jsfiddle功能有加須藤代碼(){ 回報{ 數據:函數(){VAR 數據= { ...} 回報數據 }, 選擇:函數(){ \t VAR選項= { ... } 回報選項 } \t}} 在 – katch

+0

理解你想要的掙扎了一下我這是怎麼解釋它。如果我想分開選項,數據和剩餘配置g在3個不同的文件中,您可以在3個不同的js文件中創建它們,然後在將代碼放到服務器/虛擬服務器上之前將它們連接到同一個文件。 f.exs。使用以下其中一個: http://stackoverflow.com/questions/301442/how-do-i-concatenate-javascript-files-into-one-file 然後你得到的源代碼分開的優勢,但你在瀏覽器中沒有3個請求的性能損失。 –