百度EChart3初體驗

来源:http://www.cnblogs.com/netxiaohui/archive/2016/10/26/6001355.html
-Advertisement-
Play Games

由於項目需要在首頁搞一個訂單數量的走勢圖,經過多方查找,體驗,感覺ECharts不錯,封裝的很細,我們只需要看自己需要那種類型的圖表,搞定好自己的json數據就OK。至於說如何體現出來,官網的教程很詳細。大家可以去看下。大概瞭解下用法就OK。 百度ECharts 3:http://echarts.b ...


由於項目需要在首頁搞一個訂單數量的走勢圖,經過多方查找,體驗,感覺ECharts不錯,封裝的很細,我們只需要看自己需要那種類型的圖表,搞定好自己的json數據就OK。至於說如何體現出來,官網的教程很詳細。大家可以去看下。大概瞭解下用法就OK。

百度ECharts 3:http://echarts.baidu.com/index.html

image

其實還有很多,可以到官網中找。

下麵是我進行操作的步奏,大家可以看下,做個參考。

ECharts初體驗—01...

需要到官網下載最新的版本的js文件(完整版),其實只有一個,但是你要想出來一些好看的效果就應該把主題也下載好。

地址:http://echarts.baidu.com/download.html

其實只需要4步就OK。

    1:劃分一塊區域用來顯示圖形;

    2:初始化echart插件;

    3:填充option中的數據data;

    4:載入,裝配數據到echart。

這樣就OK了。其實最難的不是使用,而是如何將這個插件和自己的後臺聯繫起來,比如數據應該展示那些,如何將數據json化之後傳遞過來。如何實現非同步等……

 

ECharts初體驗—02...

下麵是MVC中一個簡單的頁面,只是為了將圖表先展示出來。


1 /// <summary>
2 /// 折線圖
3 /// </summary>
4 /// <returns></returns>
5 public ActionResult Index()
6 {
7     return View();
8 }

 1 <h2>Index</h2>
 2 
 3 <div id="main" style="width: 600px;height:400px;"></div>
 4 @*引人外部JS文件,下麵的vintage,dark是主題。*@
 5 <script src="~/Scripts/echarts/echarts.js"></script>
 6 <script src="~/Scripts/echarts/vintage.js"></script>
 7 <script src="~/Scripts/echarts/dark.js"></script>
 8 <script>   
 9     //第一步;
10     var myChart = echarts.init(document.getElementById('main'), 'dark');  //這就樣
11     //第二步;
12   var  option = {
13         title: {
14             text: '堆疊區域圖'
15         },
16       //氣泡提示框,呈現更詳細的數據。
17         tooltip: {
18             trigger: 'axis'
19         },
20       //圖例,表述數據和圖表的關聯
21         legend: {
22             data: ['郵件營銷']
23         },
24       //輔助工具箱,如添加標線,框選縮放.
25         toolbox: {
26             feature: {
27                 saveAsImage: {}
28             }
29         },
30       //用於定義直角系的佈局。
31         grid: {
32             left: '3%',
33             right: '4%',
34             bottom: '3%',
35             containLabel: true
36         },
37       //坐標系中的X軸--類目錄
38         xAxis: [
39             {
40                 type: 'category',
41                 boundaryGap: false,
42                 data: ["2016-10-12", "2016-10-13", "2016-10-14", "2016-10-15", "2016-10-16", "2016-10-17", "2016-10-18", "2016-10-19", "2016-10-20", "2016-10-21", "2016-10-22", "2016-10-23", "2016-10-24", "2016-10-25", "2016-10-26"]
43             }
44         ],
45       //坐標系中的Y軸--數據值
46         yAxis: [
47             {
48                 type: 'value'
49             }
50         ],
51       //數據列表,一個圖表可能包含多個系列,每一個系列可能包含多個數據。格式為json的形式。
52         series: [
53             {
54                 name: '郵件營銷',
55                 type: 'line',
56                 stack: '總量',
57                 areaStyle: { normal: {} },
58                 label: {
59                     normal: {
60                         show: true,
61                         position: 'top'
62                     }
63                 },
64                 data: [23, 45, 23, 11, 222, 234, 12, 34, 37, 50, 23, 45, 23, 11, 222]
65             }          
66         ]
67     };
68     //第三步 使用剛指定的配置項和數據顯示圖表。
69   myChart.setOption(option);
70 </script>

其中的每一步都有解釋,每一個名詞都有各自的意義,大家可以瞭解下。至於每一個data,都是使用靜態的json,後面會從後臺傳遞數據。下麵是這個的效果。

image

 

ECharts初體驗—03...

其實上面的數據都是靜態的,很好的實現。但是對於我們實際的項目中都是從資料庫中取到的數據,不可能是靜態的,此時我們就需要將其json化,進行一定的轉換。把數據從後面傳遞到前臺,在進行操作。

dataList類


1 public class DateList
2 {
3 
4     public IList<string> datetime { get; set; }
5 
6     public IList<int> ordernumber { get; set; }
7 }

控制器Controller


 

 1 [HttpGet]
 2 public ActionResult ZhiXian()
 3 {         
 4     return View();
 5 }
 6 [HttpPost, ActionName("ZhiXian")]
 7 public ActionResult ZhiXianPost()
 8 {
 9     var listData = new List<string>();
10     var datetimes = DateTime.Now.AddDays(1);
11     for (int i = 1; i <=15; i++)
12     {
13         listData.Add(datetimes.AddDays(-i).ToString("yyyy-MM-dd"));
14     }
15     listData.Reverse();
16     var aa = new int[] { 23, 45, 23, 11, 222, 234, 12, 34, 37, 50, 23, 45, 23, 11, 222 };
17     var data = new DateList()
18     {
19         datetime = listData,
20         ordernumber = aa,
21     };
22     return Json(new{status=1,result=data});
23 } 

視圖View


 1 <h2>ZhiXian</h2>
 2 <div id="main" style="width: 800px;height:400px;"></div>
 3 @*引人外部JS文件*@
 4 <script src="~/Scripts/echarts/echarts.js"></script>
 5 <script src="~/Scripts/jquery-2.1.4.js"></script>
 6 <script src="~/Scripts/echarts/vintage.js"></script>
 7 <script src="~/Scripts/echarts/roma.js"></script>
 8 <script>
 9     // 基於準備好的dom,初始化echarts實例
10     var myChart = echarts.init(document.getElementById('main'), 'roma');  //這就
11     $.post("/Home/ZhiXian", function (response) {
12         if (response.status == 1) {
13             console.log(response.result.datetime);
14             console.log(response.result.ordernumber);
15             var option = {
16                 title: {
17                     text: '近10天訂單數量分析圖'
18                 },
19                 //氣泡提示框,呈現更詳細的數據。
20                 tooltip: {
21                     trigger: 'axis'
22                 },
23                 //圖例,表述數據和圖表的關聯
24                 legend: {
25                     data: ['訂單總量']
26                 },
27                 //輔助工具箱,如添加標線,框選縮放.
28                 toolbox: {
29                     feature: {
30                         saveAsImage: {}
31                     }
32                 },
33                 //用於定義直角系的佈局。
34                 grid: {
35                     left: '3%',
36                     right: '4%',
37                     bottom: '3%',
38                     containLabel: true
39                 },
40                 //坐標系中的X軸--類目錄
41                 xAxis: [
42                     {
43                         type: 'category',
44                         boundaryGap: false,
45                         data: response.result.datetime
46                     }
47                 ],
48                 //坐標系中的Y軸--數據值
49                 yAxis: [
50                     {
51                         type: 'value'
52                     }
53                 ],
54                 //數據列表,一個圖表可能包含多個系列,每一個系列可能包含多個數據。格式為json的形式。
55                 series: [
56                     {
57                         name: '訂單總量',
58                         type: 'line',
59                         stack: '總量',
60                         label: {
61                             normal: {
62                                 show: true,
63                                 position: 'top'
64                             }
65                         },
66                         areaStyle: { normal: {} },
67                         data: response.result.ordernumber
68                     }
69                 ]
70             };
71             myChart.clear();
72             myChart.hideLoading();
73             //// 使用剛指定的配置項和數據顯示圖表。
74             myChart.setOption(option);
75         } else {
76             alert("圖表請求不成功,請重新請求。");
77         }       
78     });
79 </script>

效果如下:

image

我們可以發現顏色和第二個的不一樣,這個就是我們使用了主題,這個在獲取dom元素的時候標記的。如下所示。

image

image

下麵是一個餅狀圖的主要option,其餘的不變;


 1 myChart.setOption({
 2         series: [
 3             {
 4                 name: '訪問來源',
 5                 type: 'pie',
 6                 radius: '55%',
 7                 data: [
 8                     { value: 400, name: '搜索引擎' },
 9                     { value: 335, name: '直接訪問' },
10                     { value: 310, name: '郵件營銷' },
11                     { value: 274, name: '聯盟廣告' },
12                     { value: 235, name: '視頻廣告' }
13                 ]
14             }
15         ]
16     });

image


我一直相信,只要我一直走,就一定可以到達。雖然我不知道要到那裡去...


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 理解I2C設備驅動框架,主要圍繞四個結構體去分析就容易了。 struct i2c_algorithm:提供I2C協議的實現的操作,如:master_xfer實現數據收發的最基本方法。 struct i2c_adapter:每一個i2c_adapter都代表一個I2C物理介面,一個cpu可以有多個I2 ...
  • 一、MSMQ是什麼 Message Queuing(MSMQ) 是微軟開發的消息中間件,可應用於程式內部或程式之間的非同步通信。主要的機制是:消息的發送者把自己想要發送的信息放入一個容器中(我們稱之為Message),然後把它保存至一個系統公用空間的消息隊列(Message Queue)中;本地或者是 ...
  • /* * (un)comment correct payload first (x86 or x64)! * * $ gcc cowroot.c -o cowroot -pthread * $ ./cowroot * DirtyCow root privilege escalation * Back ...
  • 版權聲明:本文發佈於http://www.cnblogs.com/yumiko/,版權由Yumiko_sunny所有,歡迎轉載。轉載時,請在文章明顯位置註明原文鏈接。若在未經作者同意的情況下,將本文內容用於商業用途,將保留追究其法律責任的權利。如果有問題,請以郵箱方式聯繫作者(793113046@q ...
  • 在使用系統時,我們或多或少的有一些搜索、查找的需求,必須要在文本中搜索某個關鍵字,或者過濾出文本中某些特定的行。grep 命令就為我們提供了這樣一個功能,同時,grep 還可以使用正則表達式進行匹配,這是一個強大的功能,有必要好好掌握。 1.grep 初體驗 grep PATTERN [OPTION ...
  • LAMP環境配置安裝註意安裝步驟及說明事項。 LAMP安裝各種問題解決 1. 訪問ftp報錯 解決: 關閉selinux vi /etc/selinux/config 內容修改為: selinux=disable 之後重啟reboot。 下圖分別為selinux關閉前 和 關閉後: 2. 依賴軟體查... ...
  • 通常在 Shell 中執行命令的時候,我們會在輸入命令的下方看到執行結果,操作系統預設將命令的執行結果輸出到顯示器上。當然,我們也可以手動的指定輸出路徑,或者輸入路徑,這就是 I/O 重定向。 1.標準輸出重定向 使用 cat 命令,命令的執行結果將會列印在屏幕中。 我們使用 > 來進行輸出重定向, ...
  • 1.值類型: 1 static void Main(string[] args) 2 { 3 int a = 5; 4 int b = 3; 5 NumVal(a, b); 6 Console.WriteLine("a={0},b={1}", a, b); //輸出結果為:a=5,b=3 7 8 C ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...