溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

發(fā)布時間:2020-08-07 11:08:47 來源:ITPUB博客 閱讀:200 作者:i042416 欄目:web開發(fā)

提升程序員工作效率的工具/技巧推薦系列

  • 推薦一個功能強大的文件搜索工具SearchMyFiles

  • 介紹一個好用的免費流程圖和UML繪制軟件-Diagram Designer

  • 介紹Windows任務(wù)管理器的替代者-Process Explorer

  • 介紹一個強大的磁盤空間檢測工具Space Sniffer

  • 如何在電腦上比較兩個相似文件的差異

  • 程序員工作效率提升系列-推薦一個JSON文件查看和修改的小工具

  • 將Chrome調(diào)試器里的JavaScript變量保存成本地JSON文件

這可能是史上最簡單易用的開源統(tǒng)計圖表繪制庫了。柱狀圖,餅狀圖,點狀圖等等您能想到的類型全部支持。

這個開源庫的官網(wǎng): http://www.chartjs.org/

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

直接看如何只用40行代碼就實現(xiàn)專業(yè)的統(tǒng)計圖表。代碼如下:

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

<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>

效果如下:

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

簡單解釋下代碼。

  • 第二行:<canvas id="myChart" width="300px" height="300px"></canvas> 這個canvas結(jié)點作為最后繪制出的圖表顯示的一個容器,也就是說,最后畫出來的統(tǒng)計圖表就顯示在這個canvas結(jié)點里。大家可以根據(jù)需要定義圖標(biāo)的寬(width)和高(height)。

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

  • 第八行:聲明要顯示的統(tǒng)計圖的類型。同一套數(shù)據(jù)是可以用不同的統(tǒng)計圖類型顯示出來的,可選的有bar, bubble, doughnut, horizontalBar, line, pie, polarArea, radar, scatter這幾種。本文后半部分提供了每一種圖的效果。

  • 第十行:labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"]。定義了統(tǒng)計圖表的一個維度。如果是線狀圖,柱狀圖這些類型,則labels定義的維度作為統(tǒng)計同的橫坐標(biāo)(也就是X坐標(biāo))。

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

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

這40行代碼就講解完了,對于應(yīng)用程序開發(fā)人員來說,無需去研究里面的繪圖細(xì)節(jié),甚至連用戶把鼠標(biāo)放到圖標(biāo)上自動彈出tooltip這些細(xì)節(jié)都自動由這個庫實現(xiàn)了,使用起來非常方便。

下面是把第八行代碼圖標(biāo)的類型屬性type傳入各種支持的類型后的渲染結(jié)果,方便大家查閱:

type: line - 線狀圖

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

doughnut - 圈圖

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

horizontalBar - 水平柱圖

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

pie - 餅狀圖

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

radar - 雷達(dá)圖

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

polarArea

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

要獲取更多Jerry的原創(chuàng)技術(shù)文章,請關(guān)注公眾號"汪子熙"或者掃描下面二維碼:


分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表

分享一個開源的JavaScript統(tǒng)計圖表庫,40行代碼實現(xiàn)專業(yè)統(tǒng)計圖表


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI