天天看點

分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表

分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表
分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表

</div><div data-lake-id="f50a332fbd9d4b1eeb07c51e3034aeff">var ctx = document.getElementById("myChart").getContext('2d');</div><div data-lake-id="4cb2769986a9106012a4ce1c58e0dcfd">var myChart = new Chart(ctx, {</div><div data-lake-id="6e63a1dcc72d372c297b7ed758ea87f0">type: 'line',</div><div data-lake-id="22dd70bc05e495e79bc28f1e4accbc80">data: {</div><div data-lake-id="4e78c759f6b548dc8b27ea76ff4f855c">labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],</div><div data-lake-id="4f177f8a15cf351c635331120707eb6d">datasets: [{</div><div data-lake-id="f45610a7baf2b33b86d6a205b0699fdb">label: '# of Votes',</div><div data-lake-id="223efac332af38b5b0f575845c43fe60">data: [12, 14, 3, 5, 2, 3],</div><div data-lake-id="b2e1e11ff5217b5522e72f26bb421c07">backgroundColor: [</div><div data-lake-id="bbc30c1500446444c5c573f662a0e6fa">'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)',</div><div data-lake-id="5e2b8b81c44b736131110df6c5c53ed3">'rgba(153, 102, 255, 0.2)', 'rgba(255, 159, 64, 0.2)'</div><div data-lake-id="2a6b288887359032b66f8d0a0598ab21">],</div><div data-lake-id="57b1bea362faffe6c211a15e18754f61">borderColor: [</div><div data-lake-id="bc62da31632d20d9b1b0c909ff6e9f04">'rgba(255,99,132,1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)', 'rgba(75, 192, 192, 1)',</div><div data-lake-id="babcca20040aff3bf7fc34f4d0f09e1f">'rgba(153, 102, 255, 1)', 'rgba(255, 159, 64, 1)'</div><div data-lake-id="2228d4dc4d9be52895a2a41fcd025816">],</div><div data-lake-id="7b2e59223326fcce6de21a7d0dd96ddb">borderWidth: 1</div><div data-lake-id="12308c72f7d5a22378b0035e45c1666a">}]</div><div data-lake-id="93103c1421c4d37fc13cf241a0761276">},</div><div data-lake-id="ffc6d6094f1672cf0737ad0397ded329">options: {</div><div data-lake-id="0ebd15509fa9e515263d33375fb12018">responsive: false,</div><div data-lake-id="3f90535f217768792234840ed45da156">scales: {</div><div data-lake-id="f9a66aff3ee8553624bb424dec173947">yAxes: [{</div><div data-lake-id="689fc032bd91cb282495ed405b696cd7">ticks: {</div><div data-lake-id="bc2c09bf8fe10ab4acb2f0e9d9307eb3">beginAtZero:true</div><div data-lake-id="e75077fe6d5a723381175e2a3f676350">}</div><div data-lake-id="22fe09b12eeac4c26d592da18a1af123">}]</div><div data-lake-id="ccc150edf230fe734f06239869a9eff2">}</div><div data-lake-id="1119265115311a34584e24570fc038d6">}</div><div data-lake-id="90536e134af63f9ccba943bf3fc77114">});</div><div data-lake-id="8913308cd49b2bbf8cfc55f4d4233d60">

分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表

簡單解釋下代碼。

第二行: 這個canvas結點作為最後繪制出的圖表顯示的一個容器,也就是說,最後畫出來的統計圖表就顯示在這個canvas結點裡。大家可以根據需要定義圖示的寬(width)和高(height)。

第三行:聲明了這個開源庫的CDN位址。

第八行:聲明要顯示的統計圖的類型。同一套資料是可以用不同的統計圖類型顯示出來的,可選的有bar, bubble, doughnut, horizontalBar, line, pie, polarArea, radar, scatter這幾種。本文後半部分提供了每一種圖的效果。

第十行:labels: [“Red”, “Blue”, “Yellow”, “Green”, “Purple”, “Orange”]。定義了統計圖表的一個次元。如果是線狀圖,柱狀圖這些類型,則labels定義的次元作為統計同的橫坐标(也就是X坐标)。

第十三行:data: [12, 14, 3, 5, 2, 3] 定義了統計圖表的另一個次元。如果是線狀圖,柱狀圖這些類型,則labels定義的次元作為統計圖的縱坐标(也就是Y坐标)。如果是餅狀圖,data定義的這些值是描述每個次元占整個餅(一個完整圓)的百分比。

第二十六行:responsive: false,意思是使用第二行canvas指定的寬和高來繪制統計圖表。如果response置為true,意思是響應式布局,會以全屏的方式顯示圖表。

這40行代碼就講解完了,對于應用程式開發人員來說,無需去研究裡面的繪圖細節,甚至連使用者把滑鼠放到圖示上自動彈出tooltip這些細節都自動由這個庫實作了,使用起來非常友善。

下面是把第八行代碼圖示的類型屬性type傳入各種支援的類型後的渲染結果,友善大家查閱:

type: line - 線狀圖

分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表
分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表
分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表
分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表
分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表
分享一個開源的JavaScript統計圖表庫,40行代碼實作專業統計圖表

繼續閱讀