雙11不再孤單,結識ECharts---強大的常用圖表庫


   又是一年雙十一,廣大單身狗們有沒有很寂寞(好把,其實我也是)!但是這次的雙十一,我不再孤單,因為結識了一個js的強大的圖表庫---ECharts。

 

  最近做軟件工程項目的時候,由於設計圖中有柱狀圖和餅圖的設計,第一反應用原生js寫肯定很麻煩,於是我請求能否不做,但我們的PM鐵了心要做,最終逼迫我找到了這個強大的圖表庫,哈哈,在這里感謝一下PM李佳瑋。(當我發現它還兼容IE6-8時,真的炒雞感動!)

 

   ECharts提供商業產品常用圖表,底層基於ZRender(一個全新的輕量級canvas類庫),創建了坐標系,圖例,提示,工具箱等基礎組件,並在此上構建出折線圖、柱狀圖、散點圖、K線圖、餅圖、雷達圖、地圖、和弦圖、力導向布局圖、儀表盤以及漏斗圖,同時支持任意維度的堆積和多圖表混合展現。

 

  廢話不多說,馬上進入ECharts的使用吧。

  首先我們進入ECharts的官網http://echarts.baidu.com/index.html(向百度前端團隊致敬),進去以后下載ECharts。

  下載好的目錄:

    

  初學的話我們只要把目光放在build文件上,這里面包含了我們制作圖表所需的相關資源文件。

  引入ECharts包有三種方式,官方文檔中有三種方式的具體介紹http://echarts.baidu.com/doc/doc.html#引入ECharts

  這里我采用官方推薦的模塊化單文件引入,首先需要熟悉模塊化開發。ECharts是一個符合AMD規范的模塊加載器,AMD規范相信大家都不陌生,它是javascript客戶端(就是瀏覽器上)的開發規范,而Node.js有CommonJs開發規范。如果不是很了解AMD規范可以參考一下文章:

  AMD---瀏覽器中的開發規范http://www.cnblogs.com/snandy/archive/2012/03/12/2390782.html

  

  好,接下來我會展示具體的引入寫法:

<!doctype html>
<html lang="zh-cn">
<head>
	<meta charset="utf-8">
</head>
<body>
	<div id="main" style="height:300px;"></div>
	<script type="text/javascript" src="echarts/build/dist/echarts.js"></script>
	<script type="text/javascript">
		require.config({
			paths : {
                                // 這里載入相對路徑
				echarts : "echarts/build/dist"
			}
		});
		require(
			[
                                // 這里的echarts代表的是paths中的路徑
				"echarts",
				"echarts/chart/bar"
			],
              // 回調函數 function(ex){ } ); </script> </body> </html>

 

  js中require()表示要創建一個圖標的請求,首先要列出所需圖表庫的資源,這里是要載入bar.js文件,因此需要引入模塊"echarts/chart/bar"。在ECharts中還有很多種圖表,比如pie(餅圖),map(地圖)等等。

  現在我們已經加載了我們需要的圖類,接下來要做的事很簡單---插入對應圖類所需組件。

  

<!doctype html>
<html lang="zh-cn">
<head>
	<meta charset="utf-8">
</head>
<body>
	<div id="main" style="height:300px;"></div>
	<script type="text/javascript" src="echarts/build/dist/echarts.js"></script>
	<script type="text/javascript">
		require.config({
			paths : {
				echarts : "echarts/build/dist"
			}
		});
		require(
			[
				"echarts",
				"echarts/chart/pie"
			],
			function(ec){
				var myChart=ec.init(document.getElementById("main"));
				var option = {
					title :{
						text : "查看企業各部門報銷",
						x : "center"
					},
					tooltip : {
						trigger : "item",
						formatter : "{a} <br/> {b} : {c} ({d}%)"
					},
					legend : {
						orient : "vertical",
						x : "left",
						data : ["part1","part2","part3","part4"]
					},
					toolbox : {
						show : true,
						feature : {
							//mark : {show : true},
							//dataView : {show : true,readOnly : false},
							restore : {show : true}
							//saveAsImage : {shwo :true}
						}
					},
					calculable : false,
					series : [
						{
							name : "餅圖實例",
							type : "pie",
							radius : "55%",
							center : ["50%","60%"],
							data : [
								{value:100,name:"part1"},
								{value:200,name:"part2"},
								{value:300,name:"part3"},
								{value:400,name:"part4"}
							]
						}
					]
				};
				myChart.setOption(option);
			}
		);
	</script>
</body>
</html>

  可以看到require()的第二個參數是個function(){},這里應該是個回調函數,等待資源加載好后執行,這個函數中提供了創建圖表所需要的信息:

  首先要獲取到需要被創建的對象,這里用DOM方法取到。

  其次把數據集用類似json的形式存放到option中,最后傳入到要被創建的對象中。

 

  可以看到Option對象中的子對象,都攜帶了不同的信息,比如標題title,提示框(tooltip)等等,更多的組件信息可以在官方文檔中查看

  http://echarts.baidu.com/doc/doc.html#選項

 

 

  最后打開瀏覽器就可以欣賞到一個簡單的利用ECharts的圖表了:

  

  

  當我打開的時候還看到了很多動態的好玩的效果,都值得我們去研究。

  不過框架畢竟是框架,希望大家在學習框架前一定要學好原生js~這樣用起這些框架起來才會得心應手!

   

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM