之前做過柱形圖和折線圖,被前任引入的舊版本文件坑不少,再次做的時候都有些遺忘,趁項目不急的時候總結一下~
一、非模塊化——單文件引入:
1、首先毫無疑問通過script標簽引入echarts文件,官網http://echarts.baidu.com/echarts2/index.html可以下載
2、通過官網的例子結合實際補充說明
1 // srcipt標簽式引入 2 var myChart = echarts.init(document.getElementById('main')); 3 4 // 過渡--------------------- 5 myChart.showLoading({ 6 text: '正在努力的讀取數據中...', //loading話術 7 }); 8 9 // ajax getting data............... 10 11 // ajax callback 12 myChart.hideLoading(); 13 14 // 圖表使用------------------- 15 var option = { 16 legend: { // 圖例配置 17 padding: 5, // 圖例內邊距,單位px,默認上下左右內邊距為5 18 itemGap: 10, // Legend各個item之間的間隔,橫向布局時為水平間隔,縱向布局時為縱向間隔 19 data: ['ios', 'android'] 20 }, 21 tooltip: { // 氣泡提示配置 22 trigger: 'item', // 觸發類型,默認數據觸發,可選為:'axis' 23 }, 24 xAxis: [ // 直角坐標系中橫軸數組 25 { 26 type: 'category', // 坐標軸類型,橫軸默認為類目軸,數值軸則參考yAxis說明 27 data: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 28 } 29 ], 30 yAxis: [ // 直角坐標系中縱軸數組 31 { 32 type: 'value', // 坐標軸類型,縱軸默認為數值軸,類目軸則參考xAxis說明 33 boundaryGap: [0.1, 0.1], // 坐標軸兩端空白策略,數組內數值代表百分比 34 splitNumber: 4 // 數值軸用,分割段數,默認為5 35 } 36 ], 37 series: [ 38 { 39 name: 'ios', // 系列名稱 40 type: 'line', // 圖表類型,折線圖line、散點圖scatter、柱狀圖bar、餅圖pie、雷達圖radar 41 data: [112, 23, 45, 56, 233, 343, 454, 89, 343, 123, 45, 123] 42 }, 43 { 44 name: 'android', // 系列名稱 45 type: 'line', // 圖表類型,折線圖line、散點圖scatter、柱狀圖bar、餅圖pie、雷達圖radar 46 data: [45, 123, 145, 526, 233, 343, 44, 829, 33, 123, 45, 13] 47 } 48 ] 49 }; 50 myChart.setOption(option); 51 52 ... 53 54 // 增加些數據------------------ 55 option.legend.data.push('win'); 56 option.series.push({ 57 name: 'win', // 系列名稱 58 type: 'line', // 圖表類型,折線圖line、散點圖scatter、柱狀圖bar、餅圖pie、雷達圖radar 59 data: [112, 23, 45, 56, 233, 343, 454, 89, 343, 123, 45, 123] 60 }); 61 myChart.setOption(option); 62 63 ... 64 65 // 圖表清空------------------- 66 myChart.clear(); 67 68 // 圖表釋放------------------- 69 myChart.dispose();
legend:圖例,每個圖表最多僅有一個圖例,下圖中頂部中間
toolbox:工具箱,每個圖表最多僅有一個工具箱,下圖中頂部最右邊
xAxis:橫軸數組
yAxis:縱軸數組 axisLine是數組中通用屬性 [{axisLine:{ *** }}]

3、API說明
http://echarts.baidu.com/echarts2/doc/doc.html#AxisAxisline
二、模塊化包引入:
通過require引入,這里說一下require的使用背景
| 實現JS文件文件的異步加載,避免網頁失去響應 |
| 管理模塊之間的依賴性,便於代碼的編寫和維護 |
引入require考慮到加載時長,可以放到網頁底部,也可以用async屬性,IE不支持,只支持defer,如下寫就可以(data-main指定網頁程序主模塊,若主模塊依賴於其他模塊,需要使用AMD規范定義的的defer()函數)
<script src="js/require.js" defer async="true" data-main="js/main" ></script> // main.js require(['moduleA', 'moduleB', 'moduleC'], function (moduleA, moduleB, moduleC){ // some code here });
下面是echarts官網上的引入的例子:
//from echarts example require.config({ packages: [ { name: 'echarts', location: '../../src', main: 'echarts' }, { name: 'zrender', location: '../../../zrender/src', // zrender與echarts在同一級目錄 main: 'zrender' } ] });
