Echarts學習總結(一)-----柱狀圖

簡介javascript

ECharts,縮寫來自Enterprise Charts,商業級數據圖表,基於【HTML5】Canvas (ZRender),純Javascript圖表庫,是百度的一個開源的數據可視化工具,業界給予了不少讚譽,這裏很少說,須要瞭解詳情的同窗參見官網。我簡略看了下,最貼切的地方在於本地化支持,好比對於中國地圖的支持。 css

名詞解釋     html

基本名詞前端

名詞 描述
chart 是指一個完整的圖表,如折線圖,餅圖等「基本」圖表類型或由基本圖表組合而成的「混搭」圖表,可能包括座標軸、圖例等
axis 直角座標系中的一個座標軸,座標軸可分爲類目軸和數值軸
xAxis 直角座標系中的橫軸,一般並默認爲類目軸
yAxis 直角座標系中的縱軸,一般並默認爲數值軸
grid 直角座標系中除座標軸外的繪圖網格
legend 圖例,表述數據和圖形的關聯
dataRange 值域選擇,經常使用於展示地域數據時選擇值域範圍
dataZoom 數據區域縮放,經常使用於展示大數據時選擇可視範圍
toolbox 輔助工具箱,輔助功能,如添加標線,框選縮放等
tooltip 氣泡提示框,經常使用於展示更詳細的數據
timeline 時間軸,經常使用於展示同一組數據在時間維度上的多份數據
series 數據系列,一個圖表可能包含多個系列,每個系列可能包含多個數據

 圖表名詞java

名詞 描述
line 折線圖,堆積折線圖,區域圖,堆積區域圖。
bar 柱形圖(縱向),堆積柱形圖,條形圖(橫向),堆積條形圖。
scatter 散點圖,氣泡圖。散點圖至少須要橫縱兩個數據,更高維度數據加入時能夠映射爲顏色或大小,當映射到大小時則爲氣泡圖
k K線圖,蠟燭圖。經常使用於展示股票交易數據。
pie 餅圖,圓環圖。餅圖支持兩種(半徑、面積)南丁格爾玫瑰圖模式。
radar 雷達圖,填充雷達圖。高維度數據展示的經常使用圖表。
chord 和絃圖。經常使用於展示關係數據,外層爲圓環圖,可體現數據佔比關係,內層爲各個扇形間相互鏈接的弦,可體現關係數據
force 力導佈局圖。經常使用於展示覆雜關係網絡聚類佈局。
map 地圖。內置世界地圖、中國及中國34個省市自治區地圖數據、可經過標準GeoJson擴展地圖類型。支持svg擴展類地圖應用,如室內地圖、運動場、物件構造等。

引入Echarts的方式node

echarts提供多種引入方式,請根據你的項目類型選擇合適的方式:git

1 模塊化包引入
       須要注意的是,包引入提供了開發階段最大的靈活性,但並不適合直接上線,減小請求的文件數量是前端性能優化中最基本但很重要的規則,務必在上線時
文件的連github

壓縮。canvas

    require.config({
       packages:[{
		 name:'echarts',
		 location:'../js/echarts',
		 main:'echarts'
	 	},{
		 name:'zrender',
		 location:'../js/zrender',//zrender與echarts,在同一級目錄,模塊化包引入
		 main:'zrender'
		}
	 ]
	 });

首先下載Zrender到本地,和ECharts放在同一目錄下。瀏覽器

 

 

   在echarts/doc/example/www文件中創建一個HTML文件,所使用的js文件都包含在js文件中。    包含echarts.js、echarts-map.js、esl.js三個,其實只用到兩個,echarts-map.js並不用。

2 模塊化單文件引入(推薦
      若是你使用模塊化開發但並無本身的打包合併環境,或者說你不但願在你的項目裏引入第三方庫的源文件,咱們建議你使用單文件引入,同模塊化包引入同樣,你須要熟悉模塊化開發,這種方式只是咱們預先幫你把經常使用圖表組合鏈接合併在一塊兒,你只需一個符合AMD規範的加載器,同時引入一個echarts相關js便可。如你所發現的,build文件夾下已經生成了不一樣組合的多個單文件見下,根據你的需求場景只須要使用其中一個便可:

例子:   在這裏咱們只是用line圖表,其餘的不用,若是你不用的話打包在一塊兒就很是浪費,這時候就能夠經過build目錄下的build.js文件來構建一個更加貼身的echarts單文件。 總結來講模塊化如何引入ECharts,你都須要以下4步: 一、引入一個模塊加載器,如esl.js或者require.js 二、爲ECharts準備一個具有大小(寬高)的Dom(固然能夠是動態生成的) 三、爲模塊加載器配置echarts的路徑,從當前頁面連接到echarts.js,見上述說明 四、動態加載echarts而後在回調函數中開始使用(容我羅嗦一句,當你確保同一頁面已經加載過echarts,再使用時直接require('echarts').init(dom)就行)

首先下載node下載完成後,安裝好node。 打開build文件夾,看到以下文件:

這裏我已經創建了一個新的build01.bat 就是單一輩子成echarts.js

node build.js optimize=true plain=false exclude=map output=echarts.js

固然也能夠在終端裏經過命令行參數方式運行 node.js構建腳本。

具體語法:

node build.js optimize=true exclude=map,force,line output=echarts.js plain=true  

 

名稱 描述
optimize 是否壓縮, 默認false
exclude 不打包的圖表,多個圖表使用逗號分割, 默認使用全部圖表
output 輸出打包地址,默認爲echarts.js
plain 是否打包esl, 打包的話能夠直接使用scripts標籤引入, 默認false

config-tpl.js文件修改成:

{  
    // appDir: './',  
    baseUrl: '../src',  
    name: 'echarts',  
    packages: [  
        {  
            name: 'zrender',  
            location: '../../zrender/src',  
            main: 'zrender'  
        },  
        {  
            name: 'echarts',  
            location: '.',  
            main: 'echarts'  
        }  
    ],  
    include:[  
        'echarts/chart/line'  
    ],  
    out: 'echarts.js'  
}  

完成後,將echarts.js拷貝到doc/example/www/js文件中,並將原有的覆蓋

HTML配置以下:

 require.config({  
            paths: {  
                 echarts: '../js/echarts', //echarts.js的路徑
          'echarts/chart/bar' : './js/echarts',       // 把所需圖表指向單文件  
        
   'echarts/chart/line': './js/echarts'  
} });

require.config配置後後就能夠經過動態加載使用echarts。

       require(  
		    [  
		        'echarts',  
		        'echarts/chart/line',   // 按需加載所需圖表  
		        'echarts/chart/bar'  
		    ],  
		    function (ec) {  
		        var myChart = ec.init(domMain);  
		        var option = {  
		            ...  
		        }  
		        myChart.setOption(option);  
		    }  
		);

3 標籤式單文件引入
      若是你的項目自己並非基於模塊化開發的,或者是基於CMD規範(如使用的是seajs),那麼引入基於AMD模塊化的echarts可能並不方便,咱們建議你採用srcipt標籤

式引入,忘掉require,srcipt標籤引入echarts後將能夠直接使用兩個全局的命名空間:echarts,zrender,可是須要注意的是excanvas依賴body標籤插入Canvas節點

判斷Canvas的支持,若是你把引用echarts的script標籤放置head內在IE8-的瀏覽器中會出現報錯,解決的辦法就是把標籤移動到body內(後)。

標籤式引入環境中,經常使用模塊的引用可經過命名空間直取,同模塊化下的路徑結構,如:
echarts.config = require('echarts/config'), zrender.tool.color = require('zrender/tool/color')

能夠直接引入的單文件以下:

echarts.js : 通過壓縮,包含除地圖外的所有圖表
echarts-original.js : 未壓縮,可用於調試,包含除地圖外的所有圖表
echarts-map.js : 通過壓縮,全圖表,包含world,china以及34個省市級地圖數據
echarts-original-map.js : 未壓縮,可用於調試,全圖表,包含world,china以及34個省市級地圖數據

<script src="example/www2/js/echarts-plain.js"></script>  
<script>  
    var myChart = echarts.init(domMain);  
    var option = {  
        ...  
    }  
    myChart.setOption(option);  
</script>  

牛刀小試----代碼解析柱狀圖

今天在學習Echarts練習時,老是在路徑的配置上出現錯誤,做爲入門,總結一下,在此分享給你們,但願有用。

ECharts主頁:  http://echarts.baidu.com/index.html

ECharts-2.2.0下載地址:  http://echarts.baidu.com/build/echarts-2.2.0.zip 

ECharts官方實例:  http://echarts.baidu.com/doc/example.html

ECharts官方API文檔:  http://echarts.baidu.com/doc/doc.html

須要注意的是ECharts內部也是依賴於另外一個插件的叫ZRender,固然對於大部分圖表而言不須要ZRender的,可是對於地圖控件及其餘複雜的呈現控件而已都是須要ZRender的。爲了不不要的問題出現,建議你們在下載ECharts時同時也要下載ZRender。

ZRender下載地址:http://ecomfe.github.io/zrender/index.html

一、項目結構

 

js文件夾: 下載了ECharts以後,解壓縮,如解壓後的根目錄是echarts-2.2.0,則到echarts-2.2.0\doc\example\www路徑下,把裏面的js文件夾直接複製粘貼到項目的 WebRoot根目錄下便可。ZRender插件放在與ECharts的同一目錄下,即zrender-master\src

這裏有如下幾點須要說明:

l  全部的跟ECharts有關的文件所有都在echarts文件夾下

l  echarts文件夾的內容分爲兩部分

1)       一部分是以echarts開頭的js文件,這些文件所有來自於1.中的ECharts文件目錄中的js文件夾下的文件,也就是1.中的圖中紅框標註的js下的文件。以下:

 

2)       另外一部分是一個名爲zrender的文件夾,這裏須要特別注意的是該文件夾的命名必須爲zrender,由於在echarts的js文件中對zrender的引用都是以zrender爲根目錄的,zrender文件夾的內容即爲1.中zrender文件目錄中的src文件夾下的內容,以下:

 

dem1:index.html:在WebRoot根目錄下新建index.html

<!DOCTYPE html>
<html>
  <head>
    <title>ECharts</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
  </head>
<body>
    <!-- 爲ECharts準備一個具有大小(寬高)的Dom -->
    <div id="main" style="height:400px"></div>
    <!-- ECharts單文件引入 -->
    <script src="js/echarts.js"></script>
    <script type="text/javascript">
        // 路徑配置
        require.config({
            paths: {
                echarts: './js'
            }
        });
        
        // 使用
        require(
            [
                'echarts',
                'echarts/chart/bar', // 使用柱狀圖就加載bar模塊,按需加載
                'echarts/chart/line'
            ],
            function (ec) {
                // 基於準備好的dom,初始化echarts圖表
                var myChart = ec.init(document.getElementById('main')); 
                
                var option = {
                    tooltip: {
                        show: true
                    },
                    legend: {
                        data:['銷量']
                    },
                    xAxis : [
                        {
                            type : 'category',
                            data : ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
                        }
                    ],
                    yAxis : [
                        {
                            type : 'value'
                        }
                    ],
                    series : [
                        {
                            name:"銷量",
                            type:"bar",
                            data:[5, 20, 40, 10, 10, 20]
                        },//折線圖         
	                    {         
	                    	 name:"銷量",    
	                    	 type:"line",      
	                    	 data:[5, 20, 40, 10, 10, 20],
	                    	  //繪製平均線       
	                    	 markLine : {         
	                    	      data : [            
	                    	          {
	                    	          type : 'average',
	                    	          name: '平均值'
	                    	          }    
	                    	      ]  
	                    	 }, 
	                    	  //繪製最高最低點          
	                    	 markPoint : {     
	                    	       data : [   
	                    	               {
	                    	               type : 'max', 
	                    	               name: '最大值'
	                    	               },          
	                    	               {
	                    	               type : 'min', 
	                    	               name: '最小值'
	                    	               }           
	                    	        ]         
	                    	  }            	 
	                    }
	                  ]
	                };
        
                // 爲echarts對象加載數據 
                myChart.setOption(option); 
            }
        );
    </script>
</body>

</html>

 

dem2:echarts.jsp:同上

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>ECharts-基本線性圖及其配置要求</title>
</head>
<body>
    <!--Step:1 Prepare a dom for ECharts which (must) has size (width & hight)-->
    <!--Step:1 爲ECharts準備一個具有大小(寬高)的Dom-->
    <div id="main" style="height:500px;border:1px solid #ccc;padding:10px;"></div>
    <div id="mainMap" style="width:500px;height:500px;border:1px solid #ccc;padding:10px;"></div>
    
    <!--Step:2 Import echarts.js-->
    <!--Step:2 引入echarts.js-->
    <script src="js/echarts.js"></script>
    
    <script type="text/javascript">
    // Step:3 conifg ECharts's path, link to echarts.js from current page.
    // Step:3 爲模塊加載器配置echarts的路徑,從當前頁面連接到echarts.js,定義所需圖表路徑
    require.config({
        paths: {
            echarts: './js'		//echarts.js所在的路徑 
        }
    });
    
    // Step:4 require echarts and use it in the callback.
    // Step:4 動態加載echarts而後在回調函數中開始使用,注意保持按需加載結構定義圖表路徑
    require(
        [
            'echarts',
            'echarts/chart/bar',
            'echarts/chart/line',
            'echarts/chart/map'
        ],
        function (ec) {//渲染ECharts圖表  ,可單獨寫出來做爲回調函數
            //--- 折柱 ---
            //圖表渲染的容器對象  
	        var chartContainer = document.getElementById("main");  //""、''這裏都可以
            //加載圖表  
            var myChart = ec.init(chartContainer);  
            myChart.setOption({
                tooltip : {
                    trigger: 'axis'
                },
                legend: {
                    data:['蒸發量','降水量']
                },
                toolbox: {
                    show : true,
                    feature : {
                        mark : {show: true},
                        dataView : {show: true, readOnly: false},
                        magicType : {show: true, type: ['line', 'bar']},
                        restore : {show: true},
                        saveAsImage : {show: true}
                    }
                },
                calculable : true,
                xAxis : [
                    {
                    	name : '月份',
                        type : 'category',
                        data : ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']
                    }
                ],
                yAxis : [
                    {
                    	name : '數值',
                        type : 'value',
                        splitArea : {show : true}
                    }
                ],
                series : [
                    {
                        name:'蒸發量',
                        type:'bar',
                        data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
                    },
                    {
                        name:'降水量',
                        type:'bar',
                        data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3]
                    }
                ]
            });
            
            // --- 地圖 ---
            var myChart2 = ec.init(document.getElementById('mainMap'));
            var option = {
                tooltip : {
                    trigger: 'item',
                    formatter: '{b}'
                },
                series : [
                    {
                        name: '中國',
                        type: 'map',
                        mapType: 'china',
                        selectedMode : 'multiple',
                        itemStyle:{
                            normal:{label:{show:true}},
                            emphasis:{label:{show:true}}
                        },
                        data:[
                            {name:'廣東',selected:true}
                        ]
                    }
                ]
            };
            myChart2.setOption(option); // 爲echarts對象加載數據 
            
        }
    );
    </script>
</body>
</html>

完成以上的步驟後,把項目發佈到服務器,在瀏覽器上訪問echarts.jsp(因爲本實例尚未跟後臺進行交互,只是先作一個前臺用法介紹,因此能夠把echart.jsp直接修改爲echarts.html文件,把它跟js文件夾放在同一級目錄下,而後直接用瀏覽器打開echarts.html),便可看到效果。好了,此次總結就先到這裏!

相關文章
相關標籤/搜索