***ECharts圖表入門和最佳實踐

ECharts數據圖表系統? 5分鐘上手!

【ECharts簡介】

ECharts開源來自百度商業前端數據可視化團隊,基于html5 Canvas,是一個純Javascript圖表庫,提供直觀,生動,可交互,可個性化定制的數據可視化圖表。創新的拖拽重計算、數據視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數據進行挖掘、整合的能力。

支持折線圖(區域圖)、柱狀圖(條狀圖)、散點圖(氣泡圖)、K線圖、餅圖(環形圖)、雷達圖(填充雷達圖)、和弦圖、力導向布局圖、地圖、儀 表盤、漏斗圖、事件河流圖等12類圖表,同時提供標題,詳情氣泡、圖例、值域、數據區域、時間軸、工具箱等7個可交互組件,支持多圖表、組件的聯動和混搭 展現。

好了,咱們重點不是介紹哈,后面我會詳細講解這個報表系統的使用,這里就不做過多的描述了,下面開始進入正題:“5分鐘上手寫ECharts的第一個圖表”。

【方法一:模塊化單文件引入(推薦)】

1. 新建一個echarts.html文件,為ECharts準備一個具備大小(寬高)的Dom:

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head><body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div>
</body>

?

2. 新建<script>標簽引入模塊化單文件echarts.js:

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts單文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts.js"></script>
</body>

?

?

3. 新建<script>標簽中為模塊加載器配置echarts和所需圖表的路徑(相對路徑為從當前頁面鏈接到echarts.js):

?

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts單文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts.js"></script><script type="text/javascript">// 路徑配置require.config({paths: {echarts: 'http://echarts.baidu.com/build/dist'
            }});</script>
</body>

?

4. <script>標簽內動態加載echarts和所需圖表,回調函數中可以初始化圖表并驅動圖表的生成:

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts單文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts.js"></script><script type="text/javascript">// 路徑配置require.config({paths: {echarts: 'http://echarts.baidu.com/build/dist'
            }});// 使用require(['echarts','echarts/chart/bar' // 使用柱狀圖就加載bar模塊,按需加載],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]}]};// 為echarts對象加載數據 myChart.setOption(option); });</script>
</body>

?

5. 瀏覽器中打開ecarts.html,就可以看到以下效果:

【方法二:標簽式單文件引入】

1. 新建一個echarts.html文件,為ECharts準備一個具備大小(寬高)的Dom。

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影Blog</title>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div>
</body>

?

2. 新建<script>標簽引入echart-all.js。

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts單文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script>
</body>

?

3. 新建<script>,使用全局變量echarts初始化圖表并驅動圖表的生成。

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts - 孤影'Blog</title>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts單文件引入 --><script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script><script type="text/javascript">// 基于準備好的dom,初始化echarts圖表var myChart = echarts.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]}]};// 為echarts對象加載數據 myChart.setOption(option); </script>
</body>

?

4. 瀏覽器中打開echarts.html,可以看到如下效果:

via: http://www.cnblogs.com/LonelyShadow/p/4175071.html

?


ECharts簡介

http://www.phperz.com/article/14/1017/29557.html

ECharts開源來自百度商業前端數據可視化團隊,基于html5 Canvas,是一個純Javascript圖表庫,提供直觀,生動,可交互,可個性化定制的數據可視化圖表。創新的拖拽重計算、數據視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數據進行挖掘、整合的能力。

Echarts 首頁:http://echarts.baidu.com/index.html

特性:http://echarts.baidu.com/doc/feature.html

ECharts 底層依賴于 Html5 的輕量級的Canvas類庫ZRender ,這也是它的效果這么絢麗的原因。它與 js charts類似,不依賴其他 js 類庫,相比之下 Highcharts還要依賴JQuery等類庫。不過,ECharts也不是什么缺點都沒有的,在線演示平臺、文檔,

初學者可能會被ECharts那個帶你入門的那2個示例弄暈,這里來一個個解釋:

1、AMD規范的加載器——esl.js,這是什么?

簡單來說,AMD規范就是異步方式加載模塊的一種方式,避免因為模塊加載過慢而導致瀏覽器“假死”。

2、我們先來看一下echart的大概的包: 

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

看得出,這種分類非常有意義。

3、echarts更規范的一點,那就是模塊化加載,需要哪個部分就是用哪個部分。

關于Echarts的那個入門圖表,我想很多新手跟我一樣的迷惑,require和require.config這個兩個公共方法到底什么來的?

答:AMD規范的加載器——esl.js的公共方法。(如有錯誤,請指正。)

4、require.config的作用是什么?

答:為模塊加載器配置echarts的路徑,從當前頁面鏈接到echarts.js,定義所需的圖表路徑。一切盡在echarts-2.0.4文件夾下的src文件夾中。

5、解釋一下require方法?

答:require方法有2個參數。

第一個參數為一個數組,數組元素是需要加載的echarts模塊,需要哪個就加載哪個。(經本人測試,這個數組傳入一個空數組都是可以的 !- -)莫非,傳入不正確,會加載全部文件到內存,傳入正確就加載部分模塊到內存?求大神解答!

第二個參數為一個帶一個參數的方法:function (ec){}, 這個ec對象就是echarts對象了。

OK,基本解釋完了。可能初學者看了Eharts入門實例還是不太理解那Echarts3種導入方式的用法。(入門示例只有2種——標簽式單文件引入和模塊化單文件引入)

因為入門實例里,js文件指向的是百度服務器上的資源,而我們一般開發,js資源都是放在本地的。

6、來看一下,本地創建3種Echarts導入的例子,下面是那3個示例文件的源碼(官網Demo粗略修改而成):

(1)、標簽式單文件引入.html

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts</title>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div><!-- ECharts單文件引入 --><script src="js/echarts.js"></script><script type="text/javascript">// 基于準備好的dom,初始化echarts圖表var myChart = echarts.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]}]};// 為echarts對象加載數據 myChart.setOption(option); </script>
</body>

(2)、模塊化包引入.html,這個就需要用到2個src文件。

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts</title><!--從當前頁面,引入模塊加載器esl.js--><script src="js/esl.js"></script>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div><script type="text/javascript">// 為模塊加載器配置echarts的路徑,從當前頁面鏈接到echarts.js,定義所需的圖表路徑require.config({packages: [{name: 'echarts',location: 'js/src',      main: 'echarts'},{name: 'zrender',location: 'js/zrender/src', main: 'zrender'}]});// 使用require([],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]}]};// 為echarts對象加載數據 myChart.setOption(option); });</script>
</body>

(3)、模塊化單文件引入.html

<!DOCTYPE html>
<head><meta charset="utf-8"><title>ECharts</title><!--從當前頁面,引入模塊加載器esl.js--><script src="js/esl.js"></script>
</head>
<body><!-- 為ECharts準備一個具備大小(寬高)的Dom --><div id="main" style="height:400px"></div><script type="text/javascript">// 為模塊加載器配置echarts的路徑,從當前頁面鏈接到echarts.js,定義所需的圖表路徑require.config({paths:{ 'echarts' : './js/echarts','echarts/chart/bar' : './js/echarts'}});// 使用require(['echarts','echarts/chart/bar' // 使用柱狀圖就加載bar模塊,按需加載],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]}]};// 為echarts對象加載數據 myChart.setOption(option); });</script>
</body>

2、如果上面的還有不明白的,參考一下我的本地目錄:

js中有如下的文件:

其中,src是echarts-2.0.4文件夾下的src文件夾,zrender里面也有一個src文件夾,是zrender-2.0.4文件夾下面的src文件夾。

?

如何聯系我:【萬里虎】www.bravetiger.cn 【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起) 【博客】http://www.cnblogs.com/kenshinobiy/

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287326.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287326.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287326.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【經典回放】多種語言系列數據結構線性表之一:順序表

一、實驗任務描述 建立線性表的ADT后,編程完成: 1 用C語言完成一個順序表結構; 2 為順序表完成追加、刪除、插入、查找的功能; 3 建立一個鏈表的結點; 4 完成鏈表的追加、刪除、插入功能; 5* 用C#完成一個結點的類; 6* C#完成鏈表的追加、刪除、插入功能的類; 7* C#編寫…

原型繼承+原型鏈 + 對象繼承發展

一、原型繼承&#xff1a; &#xff11;、說起原型繼承&#xff0c;就要先由構造函數創造對象說起&#xff0c;首先了解構造函數內部基本原理&#xff1a; &#xff08;&#xff11;&#xff09;.在函數體最前面隱式的加上this {} &#xff08;&#xff12;&#xff09;.執行 …

Kotlin之?和!!最簡單的理解

一、? 1&#xff09;、?在聲明對象時&#xff0c;把它跟在類名后面&#xff0c;表示這個類允許為null var list: ArrayList<String>? null 2&#xff09;、調用對象時&#xff0c;把它跟在對象后面&#xff0c;表示如果為null程序就會視而不見&#xff0c;比如我們…

WPF|一個比較簡單帶點設計的登錄界面

閱讀目錄效果展示準備簡單說明 源碼結尾&#xff08;視頻及源碼倉庫&#xff09;1. 效果展示欣賞效果&#xff1a;2. 準備創建一個WPF工程&#xff0c;比如站長使用 .NET 7[1] 創建名為 Login5 的WPF項目。找一張圖片做為裝飾&#xff0c;放登錄表單左側&#xff1a;添加Nuget…

Android插件基礎之類加載器學習

記錄學習java 加載器學習所獲心得&#xff0c;逐步記錄了解java加載器的過程。為了知悉android 插件化的實現原理&#xff0c;從而需要從頭了解android加載apk&#xff0c;以及基礎的java類加載的加載過程情況&#xff0c;為方便記錄和記憶&#xff0c;故此將學習了解的過程記錄…

php多個文件上傳代碼,PHP單文件上傳類或多文件上傳類源碼

以下為引用的內容&#xff1a;php文件:代碼://如果收到表單傳來的參數&#xff0c;則進行上傳處理&#xff0c;否則顯示表單if(isset($_FILES[uploadinput])){//建目錄函數&#xff0c;其中參數$directoryName最后沒有"/"&#xff0c;//要是有的話&#xff0c;以/打散…

《看聊天記錄都學不會C語言?太菜了吧》(13)(9*9 乘法表)尋找電腦中的盲盒彩蛋

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我&#xff0c;若你是真心學習可以送你書籍&#xff0c;指導你學習&#xff0c;給予你目標方向的學習路線&#xff0c;無套路&#xff0c;博客為證。 本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋…

Fragment使用--文章集錦

android使用Fragment實現底部菜單使用show()和hide()來切換以保持Fragment狀態Android Fragment 真正的完全解析&#xff08;上&#xff09;Android Fragment實踐(一)糾正對Fragment Transaction BackStack的誤解多個Fragment 切換時不重新實例化Fragment詳解之四——管理Fragm…

Android之在在EditText的xml里面配置了相關屬性依然沒有顯示光標問題

1 問題 在EditText的xml里面配置了 android:cursorVisible"true" android:focusable"true" android:focusableInTouchMode"true" 依然沒有光標顯示 2 解決辦法 直接在代碼層控制&#xff0c;平且拉起鍵盤 fun showSoftInputFromWindow(activ…

【經典回放】多種語言系列數據結構線性表之二:鏈表

目錄 1 鏈表結構設計 2 簡單的鏈表測試 2 鏈表的組織和ADT設計 3 初始化有頭結點鏈表 4 有頭結點鏈表中追加一個結點(一行數據)

使用 Postman 實現 API 自動化測試

1背景介紹 相信大部分開發人員和測試人員對 postman 都十分熟悉&#xff0c;對于開發人員和測試人員而言&#xff0c;使用 postman 來編寫和保存測試用例會是一種比較方便和熟悉的方式。但 postman 本身是一個圖形化軟件&#xff0c;相對較難或較麻煩&#xff08;如使用 …

php json -gt;訪問,【轉】Php+ajax+jsonp解決ajax跨域問題

首先&#xff1a;jsonp是json用來跨域的一個東西。原理是通過script標簽的跨域特性來繞過同源策略。發送端&#xff1a;$.ajax({type : "post",url : "ajax.php",dataType : "jsonp",jsonp: "callback",//傳遞給請求處理程序或頁面的&…

《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(1)加載Python神器!亮劍!

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…

little tricks(持續更新)【python】

python中的list有reverse方法&#xff0c;但是字符串卻沒有&#xff0c;怎么辦呢&#xff1f; csdn博主有列了幾個方法&#xff0c;我覺得第一個最簡單直接&#xff0c;str[::-1]搞定。 當然也有一種怪異的方法&#xff0c;我把字符串轉為序列reverse一下&#xff0c;再轉回來不…

Codeigniter 3 拓展HMVC

2019獨角獸企業重金招聘Python工程師標準>>> 在Codeiniter&#xff08;以下統稱CI&#xff09; 2.X版本中&#xff0c;我們就通過拓展核心類庫實現了HMVC&#xff0c;但是同樣的代碼&#xff0c;拿到CI 3中&#xff0c;就很有可能不好用了。 ###拓展核心類庫方式 官…

FPGA FIFO深度計算

轉自&#xff1a;http://comm.chinaaet.com/adi/blogdetail/37555.html 首先&#xff0c;一定要理解清楚FIFO的應用場景&#xff0c;這個會直接關系到FIFO深度的計算&#xff0c;如果是面試官拋出的問題&#xff0c;那么有不清楚的地方&#xff0c;就應該進行詢問。如果是筆試或…

玩轉ASP.NET Core 6.0框架-序言

ASP.NET Core是微軟提供的強大的web框架&#xff0c;它有很多潛在的強大而有用的功能。本專欄的目標是幫助您把框架的隱藏能力最大限度地發揮出來&#xff0c;讓您能夠按需定制ASP NET Core框架。本專欄提供了一種具體的操作和實現方法&#xff0c;可以讓你在短時間盡可能地提高…

從C#開始的面向對象編程經典自學教程

1、C語言的時代 在C語言時代,可以認為那時的編程過程就是表格加工過程,也就是從A表格到B表格、再到C表格…..等等,這個過程中,計算機語言如何描述一個表格,成為計算機語言的關鍵。 對一個表格的分析可以發現:表格是兩部分組成:表頭和表格: 學生表 STUDENT 在這個表格…

Java之對List里面的對象名字進行模糊查詢

1 問題 對list里面的對象名字進行模糊查詢 2 解決辦法 //即可以進行模糊匹配matcher.find()//匹配查詢matcher.matches() /*** 模糊查詢*/public static ArrayList<SearchBean> search(String name, List<SearchBean> list) {ArrayList<SearchBean> results…

《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(2)在python中加號竟然如此善變

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…