由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK。至于说如何体现出来,官网的教程很详细。大家可以去看下。大概了解下用法就OK。

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

其实还有很多,可以到官网中找。

下面是我进行操作的步奏,大家可以看下,做个参考。

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,后面会从后台传递数据。下面是这个的效果。

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>

效果如下:

我们可以发现颜色和第二个的不一样,这个就是我们使用了主题,这个在获取dom元素的时候标记的。如下所示。

下面是一个饼状图的主要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 });

百度Echart3的更多相关文章

  1. 百度EChart3初体验

    由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉ECharts不错,封装的很细,我们只需要看自己需要那种类型的图表,搞定好自己的json数据就OK.至于说如何体现出来,官网的教程很详 ...

  2. EChart系列:在echart3中使用百度地图扩展之后,如何获取到百度地图对象

    最近做项目想要在百度地图上叠加显示echart的散点图,然后根据地图的缩放等级和区域范围要显示不同的散点图,这中间折腾了好久.功能要求包括: (1)底图使用百度地图: (2)可以在地图上叠加显示ech ...

  3. Echarts3.0 引入百度地图(转载)

    转载来源: https://blog.csdn.net/yc_1993/article/details/52431989 Echarts3.0引入百度地图 update: 由于目前echarts3.8 ...

  4. 百度echarts 3.0版本和2.0版本的兼容问题

    前一段时间,项目中要用到统计图表,之前也用过jqplot的图表插件,这次开发的内容中基于地图的展示还很多,所以后来选择了百度的echarts插件(echarts.baidu.com).刚开始用的时候, ...

  5. 简谈百度坐标反转至WGS84的三种思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 基于百度地图进行数据展示是目前项目中常见场景,但是因为百度地图 ...

  6. 百度MIP页规范详解 —— canonical标签

    百度MIP的规范要求必须添加强制性标签canonical,不然MIP校验工具会报错: 强制性标签<link rel="/^(canonical)$/"> 缺失或错误 这 ...

  7. 百度推出新技术 MIP,网页加载更快,广告呢?

    我们在2016年年初推出了MIP,帮助移动页面加速(原理).内测数据表明,MIP页面在1s内加载完成.现在已经有十多家网站加入MIP项目,有更多的网站正在加入中.在我们收到的反馈中,大部分都提到了广告 ...

  8. 百度MIP移动页面加速——不只是CDN

    MIP是用CDN做加速的么?准确答案是:是,但不只是. MIP全称Mobile Instant Pages,移动网页加速器,是百度提出的页面加速解决方案.MIP从前端渲染和页面网络传输两方面进行优化, ...

  9. 如何用百度MIP快速搭建体验友好的移动页面

    在读这篇文章之前,请确定你已经了解MIP定义及加速原理.如果不确定的话,可以到MIP官网了解. 改造前期准备和注意事项: 你可以选择直接将原先的移动站点直接改成MIP站,也可以单独再做一套MIP站点与 ...

随机推荐

  1. [canvas入坑2]模糊效果

    查看效果请到 http://philippica.github.io/  点击blur 模糊效果比较好的应该是高斯模糊,一个点的值变成了以该点为圆心的一个圆内所有像素的加权平均,权重由二维正态分布计算 ...

  2. bzoj2553【beijing2011】禁忌

    题意:http://www.lydsy.com/JudgeOnline/problem.php?id=2553 sol  :puts("nan"); (逃~ ac自动机+矩阵快速幂 ...

  3. 转JSON提示No serializer found for class

    在调用Json串生成方法时,提示: No serializer found for class com.jeremxy.domain.EpgDetail and no propertiesdiscov ...

  4. chilitags使用心得

    chilitags是一个相当好的CV方向的开源项目,不过在github上follow的人不多, 国内也基本没有这方面的消息,前几天同事给我安利了这个,使用了一下和看了源码以后..我觉得这个东西以后一定 ...

  5. Python之数据结构:字典

    key值需要是不可变对象,字典没有顺序 1.声明一个字典 dictA={ } 2.字典添加元素 dictA['name']='jack' dictA['age']=19 dictA['sex']='m ...

  6. Bzoj 3145 - [Feyat cup 1.5]Str

    bzoj 3145 - [Feyat cup 1.5]Str Description 给你两个长度\(10^5\)级别的串\(S, T\) 求\(S,T\)的最长模糊匹配公共子串 模糊匹配 : 至多一 ...

  7. bzoj 4310 跳蚤 二分答案+后缀数组/后缀树

    题目大意 给定\(k\)和长度\(\le10^5\)的串S 把串分成不超过\(k\)个子串,然后对于每个子串\(s\),他会从\(s\)的所有子串中选择字典序最大的那一个,并在选出来的\(k\)个子串 ...

  8. 汽车加油行驶(cogs 737)

    «问题描述:给定一个N*N 的方形网格,设其左上角为起点◎,坐标为(1,1),X 轴向右为正,Y轴向下为正,每个方格边长为1,如图所示.一辆汽车从起点◎出发驶向右下角终点▲,其坐标为(N,N).在若干 ...

  9. linux下的用户管理(二)

    创建帐号: 手工创建-> 1.在/etc/passwd中添加一条记录 2.创建用户主目录 3.在用户的家目录下设置默认的配置文件 4.设置用户初始口令 命令创建-> useradd或add ...

  10. StringBuilder 字符串拼接扩容

    String str = a + b + c(a,b,c都是变量,非常量) 实际执行时,"+"操作是通过创建一个StringBuilder来操作的,即: StringBuilder ...