第一步準備一個json文件echarts.json(名字無所謂),用來模擬從後臺獲取數據 第二步在頁面直接引用JS文件 第三步在body中準備一個容器,寫好樣式,用來顯示圖表 最後一步在js中初始化echarts對象,實現動態載入數據。 ...
第一步準備一個json文件echarts.json(名字無所謂),用來模擬從後臺獲取數據
{ "name":["直達","營銷廣告","搜索引擎","郵件營銷","聯盟廣告","視頻廣告","百度","谷歌","必應","其他"], "data":[ {"value":335, "name":"直達"}, {"value":310, "name":"郵件營銷"}, {"value":234, "name":"聯盟廣告"}, {"value":135, "name":"視頻廣告"}, {"value":1048, "name":"百度"}, {"value":251, "name":"谷歌"}, {"value":147, "name":"必應"}, {"value":102, "name":"其他"} ], "little":[ {"value":335, "name":"直達","selected":"true"}, {"value":679, "name":"營銷廣告"}, {"value":1548, "name":"搜索引擎"} ] }
第二步在頁面直接引用JS文件
<script src="js/echarts.min.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"src="js/jquery.min.js"></script>
第三步在body中準備一個容器,寫好樣式,用來顯示圖表
<div id="container"></div> <style> #container{ width: 800px; height: 600px; border: 1px solid #ccc; margin: 0 auto; } </style>
最後一步在js中初始化echarts對象,實現動態載入數據。
<script type="text/javascript"> var container = document.getElementById('container'); // 初始化載入對象myContainer var myContainer = echarts.init(container); //未獲取數據前,顯示loading載入動畫 myContainer.showLoading(); function bindData() { //為了效果明顯,我們做了延遲讀取數據 setTimeout(function() { //非同步載入數據,get請求我們剛剛準備的json文件,正式開發中調用相應的介面 $.get('echarts.json', function(res) { console.log(res) //獲取數據後,隱藏loading動畫 myContainer.hideLoading(); myContainer.setOption( option = { tooltip: { trigger: 'item', formatter: "{a} <br/>{b}: {c} ({d}%)" }, legend: { orient: 'horizontal', x: 'left', data:res.name }, series: [ { name:'訪問來源', type:'pie', selectedMode: 'single', radius: ['0', '30%'], label: { normal: { position: 'inner' } }, labelLine: { normal: { show: false } }, data:res.little }, { name:'訪問來源', type:'pie', radius: ['40%', '55%'], label: { normal: { formatter: '{a|{a}}{abg|}\n{hr|}\n {b|{b}:}{c} {per|{d}%} ', backgroundColor: '#eee', borderColor: '#aaa', borderWidth: 1, borderRadius: 4, // shadowBlur:3, // shadowOffsetX: 2, // shadowOffsetY: 2, // shadowColor: '#999', // padding: [0, 7], rich: { a: { color: '#999', lineHeight: 22, align: 'center' }, abg: { backgroundColor: '#333', width: '100%', align: 'right', height: 22, borderRadius: [4, 4, 0, 0] }, hr: { borderColor: '#aaa', width: '100%', borderWidth: 0.5, height: 0 }, b: { fontSize: 16, lineHeight: 33 }, per: { color: '#eee', backgroundColor: '#334455', padding: [2, 4], borderRadius: 2 } } } }, data:res.data } ] }); }) }, 1000); } bindData(); </script>