C3.js 原自 D3.js 開源的圖表套件,相較於好上手,沒有太多繁瑣複雜的設定,設定方式跟 Chart.js 有一點點像,如果有用過 Chart.js 要上手是不困難的。
起手式
載入 CSS
1 | <link href="https://cdnjs.cloudflare.com/ajax/libs/c3/0.7.18/c3.css"> |
載入 JavaScript
1 | <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/5.16.0/d3.js"></script> |
亦可從官方 GitHub 中下載最新版本的 C3.js。
因為基於 D3.js 所開發的套件,所以還是要載入 D3.js,才會有效果。
在 HTML 中放入這個標籤,id
名稱可以自訂義。
1 | <div id="chart"></div> |
使用長條圖
這邊使用長條圖當做範本,在 JS 中貼上下方程式碼,
- c3 使用
generate()
這個方法啟動圖表內容,其內容皆為物件。 - 將 id 名稱用引號放在 bindto 這個位置。
- data 為資料位置,columns 中放入陣列資料。
- 相關設定則在 data 外。
1 | var chart = c3.generate({ |
就會得到基本的 DEMO 圖表。
自訂義圖表
右側加上數據
- 在 data 物件外加上 axes 屬性,給予 data2 數據軸線。
- 用 axis 屬性指定剛剛 y2 數據軸線給予顯示。
1 | var chart = c3.generate({ |
DEMO https://codepen.io/hnzxewqw/pen/OJMorLa
改變圖表類型
加上一個 type 屬性,給予指定的數據使用圖表類型,這裡使用 bar (長條圖)。更多圖表類型請見官網,看不懂英文沒關係,可以用 google 翻譯,懶得用的話就直接每個點出來玩一玩吧!
改變圖表顏色使用 color 屬性,更改的圖表數據用物件包覆起來。
只要是針對資料相關設定都要寫在 data 的物件內。
1 | var chart = c3.generate({ |
DEMO https://codepen.io/hnzxewqw/pen/WNrgYBW
串接 API 資料
如果要串接 API,可以使用下方程式碼,
1 | require.config({ |
Load Data
使用 load() 方法來載入
1 | chart.load({ |
unload Data
使用 unload() 卸載 data
1 | chart.unload({ |
串接 API 與圖表結合
使用這筆 API來做這次範本的串接,並使用 promise 語法。
1 | const url = "https://gonsakon.github.io/D3-API-SAMPLE/"; |
DEMO https://codepen.io/hnzxewqw/pen/KKVxGXy