圖表的東西在公部門是常用的東西,在開發網站時因為有這方面的需求,要合用於 rwd 框架,又要可以方便節約頻寬,如果直接使用圖片的話不只對主機運算上有較大的負擔,在傳輸上也會比較大,也因此 canvas 就有這方面的優勢了,這套 Chart js 使用上簡單,只要參照官網的參數與設定寫在 js 內就可完成所需的表格。
 
See the Pen canvas圖表-Chart js by Jimmy_Wu (@Jimmy_Wu) on CodePen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27  | <html> <head>   <title>Stacked Bar Chart</title>   <meta charset="utf-8" />   <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>   <!--<script src="../dist/Chart.js"></script>-->   <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.1/Chart.js"></script>   <style>     canvas {       -moz-user-select: none;       -webkit-user-select: none;       -ms-user-select: none;     }   </style> </head> <body>   <div style="width: 100%">     <canvas id="canvas1"></canvas>   </div>   <div style="width: 100%">     <canvas id="canvas2"></canvas>   </div> </body> </html>  | 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60  | var canvas1Data = {   labels: ["學習目標清楚", "學習內容有幫助", "學習內容條理分明", "學習內容生動有趣", "課程時間安排恰當"],   datasets: [{     /*label: '一、課程內容',	*/      backgroundColor: ["rgba(151,187,205,0.5)", "#eee", "#333", "rgba(151,187,205,0.5)", "#eee", "#333"],     data : [4.47,4.52,4.35,4.41,4.47]   }] }; var canvas2Data = {   labels: ["學習環境合適", "教材清楚", "設備完善"],   datasets: [{     /*label: '一、課程內容',	*/      backgroundColor: ["rgba(151,187,205,0.5)", "#eee", "#333"],     data : [4.47,4.52,4.35]   }] }; window.onload = function() {   var ctx = document.getElementById("canvas1").getContext("2d");   window.myBar = new Chart(ctx, {     type: 'bar',     data: canvas1Data,     options: {       /*title:{           display:true,           text:"一、課程內容"       },*/       /*tooltips: {           mode: 'label'       },*/       legend: {         display: false       },       responsive: true       /*scales: {           xAxes: [{               stacked: true,           }],           yAxes: [{               stacked: true           }]       }*/     }   });   var ctx = document.getElementById("canvas2").getContext("2d");   window.myBar = new Chart(ctx, {     type: 'bar',     data: canvas2Data,     options: {       legend: {         display: false       },       responsive: true     }   }); };// JavaScript Document  | 
- options: { legend: { display: false },} 是指不顯示 label 切換按鈕
 - window.myBar = new Chart(ctx, { }); 指向 html 內的 #canvas2
 - JS 內的 var canvas2Data = { };為圖表內的資料內容
 - 寫過 Version: 1.0.2 與目前的新版,在js的寫法上差不少,但都可達到rwd的效果,但舊版上在畫面柱條會很肥滿
 
資料來源
官網新版 Chart.js – Version: 1.0.2
