分享一個開源的JavaScript統計圖表庫,40行代碼實現專業統計圖表
阿新 • • 發佈:2018-10-20
軟件 cal 比較 pie ogr too 掃描 earch 搜索
提升程序員工作效率的工具/技巧推薦系列
- 推薦一個功能強大的文件搜索工具SearchMyFiles
- 介紹一個好用的免費流程圖和UML繪制軟件-Diagram Designer
- 介紹Windows任務管理器的替代者-Process Explorer
- 介紹一個強大的磁盤空間檢測工具Space Sniffer
- 如何在電腦上比較兩個相似文件的差異
- 程序員工作效率提升系列-推薦一個JSON文件查看和修改的小工具
- 將Chrome調試器裏的JavaScript變量保存成本地JSON文件
這可能是史上最簡單易用的開源統計圖表繪制庫了。柱狀圖,餅狀圖,點狀圖等等您能想到的類型全部支持。
這個開源庫的官網:http://www.chartjs.org/
直接看如何只用40行代碼就實現專業的統計圖表。代碼如下:
<html> <canvas id="myChart" width="300px" height="300px"></canvas> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.js"></script> <script> var ctx = document.getElementById("myChart").getContext(‘2d‘); var myChart = new Chart(ctx, { type: ‘line‘, data: { labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"], datasets: [{ label: ‘# of Votes‘, data: [12, 14, 3, 5, 2, 3], backgroundColor: [ ‘rgba(255, 99, 132, 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)‘, ‘rgba(255, 159, 64, 0.2)‘ ], borderColor: [ ‘rgba(255,99,132,1)‘, ‘rgba(54, 162, 235, 1)‘, ‘rgba(255, 206, 86, 1)‘, ‘rgba(75, 192, 192, 1)‘, ‘rgba(153, 102, 255, 1)‘, ‘rgba(255, 159, 64, 1)‘ ], borderWidth: 1 }] }, options: { responsive: false, scales: { yAxes: [{ ticks: { beginAtZero:true } }] } } }); </script> </html>
效果如下:
簡單解釋下代碼。
- 第二行: 這個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 - 線狀圖
doughnut - 圈圖
horizontalBar - 水平柱圖
pie - 餅狀圖
radar - 雷達圖
polarArea
要獲取更多Jerry的原創技術文章,請關註公眾號"汪子熙"或者掃描下面二維碼:
分享一個開源的JavaScript統計圖表庫,40行代碼實現專業統計圖表