由于项目需要在首页搞一个订单数量的走势图,经过多方查找,体验,感觉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: [, , , , , , , , , , , , , , ]
  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();
  11. for (int i = ; i <=; i++)
  12. {
  13. listData.Add(datetimes.AddDays(-i).ToString("yyyy-MM-dd"));
  14. }
  15. listData.Reverse();
  16. var aa = new int[] { , , , , , , , , , , , , , , };
  17. var data = new DateList()
  18. {
  19. datetime = listData,
  20. ordernumber = aa,
  21. };
  22. return Json(new{status=,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 == ) {
  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: , name: '搜索引擎' },
  9. { value: , name: '直接访问' },
  10. { value: , name: '邮件营销' },
  11. { value: , name: '联盟广告' },
  12. { value: , name: '视频广告' }
  13. ]
  14. }
  15. ]
  16. });


我一直相信,只要我一直走,就一定可以到达。虽然我不知道要到那里去...

百度EChart3初体验的更多相关文章

  1. Android开发学习之路--百度地图之初体验

    手机都有gps和网络,通过gps或者网络可以定位到自己,然后通过百度,腾讯啊之类的地图可以显示我们的地理位置.这里学习下百度地图的使用.首先就是要申请开发者了,这个详细就不多讲了.http://dev ...

  2. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  3. node.js 初体验

    node.js 初体验 2011-10-31 22:56 by 聂微东, 174545 阅读, 118 评论, 收藏, 编辑 PS: ~ 此篇文章的进阶内容在为<Nodejs初阶之express ...

  4. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wx ...

  5. YII学习,初体验 ,对YII的一些理解.

    先说点没用的: 不会选择,选择后不坚持,不断的选择.这是人生中的一个死循环,前两一直迷茫.觉得自己前进方向很不明朗.想去学的东西有很多.想学好YII,想学PYTHON 想学学hadoop什么的,又想研 ...

  6. 文档数据库RavenDB-介绍与初体验

    文档数据库RavenDB-介绍与初体验 阅读目录 1.RavenDB概述与特性 2.RavenDB安装 3.C#开发初体验 4.RavenDB资源 不知不觉,“.NET平台开源项目速览“系列文章已经1 ...

  7. Linux之初体验

    预备作业03--我的Linux初体验 学习基于VirtualBox虚拟机安装Ubuntu图文教程在自己笔记本上安装Linux操作系统 一开始以为这个项目很简单,以往也在自己的笔记本上看教程安装过软件, ...

  8. 20155226-虚拟机与Linux之初体验

    虚拟机与Linux之初体验 虚拟机的安装 虚拟机对我来说不是很了解,但今天在安装过程中加深了我的理解.虚拟机是一个在原来系统基础上进行的又一个系统安装,可以在不影响前者的情况下完成一些其不能解决的问题 ...

  9. 20155315庄艺霖第三次作业之Linux初体验

    Linux初体验 安装Linux三两事 老师的作业要求基于VirtualBox安装Linux系统,我一开始下载了VB但是电脑运行不了,后来看网上的教程下载了VMware,才算开始了我的Linux之旅. ...

随机推荐

  1. 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???

    在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...

  2. MAVEN学习-第一个Maven项目的构建

    MAVEN安装成功之后就可以进行项目的构建和管理了: 为什么要用maven进行项目的构建和管理? 对于初学者来说一个最直接的也是最容易里的优点在于JAR包的管理,相对于以前开发一个项目的时候我们需要用 ...

  3. 枚举:enum

    枚举 所谓枚举就是指定好取值范围,所有内容只能从指定范围取得. 例如,想定义一个color类,他只能有RED,GREEN,BLUE三种植. 使用简单类完成颜色固定取值问题. 1,就是说,一个类只能完成 ...

  4. Ubuntu(Linux) + mono + jexus +asp.net MVC3 部署

    感谢  张善友 的建议,我把 微信订餐  由nginx 改成 jexus,目前运行状况来说,确实稳定了很多,再次感谢. 部署步骤参考 jexus官网:http://www.jexus.org/ htt ...

  5. 凭吊一下ASP.NET 5,然后跨平台,越跨越开心

    ASP.NET 5 is dead ASP.NET 5在今年早些时候被宣判死刑了.但是这并不影响我们之前在ASP.NET 5乃至ASP.NET MVC平台上的经验累积--没错,微软改名部门又立功了!他 ...

  6. 腾讯云下安装 nodejs + 实现 Nginx 反向代理

    本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理. 笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑 ...

  7. (译)你应该知道的jQuery技巧

    帮助提高你jQuery应用的简单小技巧. 回到顶部按钮 图片预加载 判断图片是否加载完 自动修补破损图像 Hover切换class类 禁用输入 停止正在加载的链接 toggle fade/slide ...

  8. [Intel Edison开发板] 02、Edison开发板入门

    一.前言 Start from the link: 开始学习的链接 上面链接是官网的教程,按照教程可以开发板入门: 其中第一步是了解开发板,涉及到如何组装.如何连线.一些主要的接口简单介绍等信息: 第 ...

  9. 自定义ActionBar标题与菜单中的文字样式

    自定义标题文字样式 标题样式是ActionBar样式的一部分,所以要先定义ActionBar的样式 <style name="AppTheme" parent="A ...

  10. mysql 列名中 包含斜杠或者空格的处理方式

    今天客户那边遇到了一个比较奇葩的问题跑来问我,这个问题比较冷门,所以特别记录下. 问题描述 数据库的字段存在斜杠或者空格的时候,怎么用sql进行insert或者select操作. 问题解答 对于这种特 ...