项目中需要使用图表,最初使用的.NET自带的MSChart控件,做出来的效果不太好,所以又使用了Echarts控件。

MSChart源码放在最后,可自行下载查看。

Echarts是一个基于 JavaScript 的开源可视化图表库,在此是在.NET MVC中的使用,其他项目也应该是如出一辙。

Echarts官网:http://echarts.apache.org

Echarts下载:https://echarts.apache.org/zh/download.html

使用说明:

  1、引入ECharts

    <script src="~/Content/echarts/echarts.min.js"></script>

   2、为ECharts准备一个具备大小(宽高)的Dom

     <div id="chart_rentalreturn" style="width: 700px;height:300px;"></div>

   3、创建关于图表属性的对象

 1 public class normal
2 {
3 /// <summary>
4 /// color
5 /// </summary>
6 public string color
7 {
8 get;
9 set;
10
11 }
12
13 }
14 public class itemStyle
15 {
16 /// <summary>
17 /// normal
18 /// </summary>
19 public object normal
20 {
21 get;
22 set;
23 }
24 }
25 public class data
26 {
27 public string name
28 {
29 get;
30 set;
31 }
32 public int value
33 {
34 get;
35 set;
36 }
37 public object itemStyle
38 {
39 get;
40 set;
41 }
42 }
43
44 public class Series
45 {
46 /// <summary>
47 /// sereis序列组id
48 /// </summary>
49 public int id
50 {
51 get;
52 set;
53 }
54 /// <summary>
55 /// series序列组名称
56 /// </summary>
57 public string name
58 {
59 get;
60 set;
61 }
62 /// <summary>
63 /// series序列组呈现图表类型(line、column、bar等)
64 /// </summary>
65 public string type
66 {
67 get;
68 set;
69 }
70 /// <summary>
71 /// series序列组的itemstyle
72 /// </summary>
73 public object itemStyle
74 {
75 get;
76 set;
77 }
78 /// <summary>
79 /// series序列组的数据为数据类型数组
80 /// </summary>
81 public List<object> data
82 {
83 get;
84 set;
85 }
86 }

   4、控制器中创建方法

 1 public JsonResult GetEchartsRentalReturn()
2 {
3 //图表的category数组
4 List<string> categoryList = new List<string>();
5 //图表的series数组
6 List<Series> seriesList = new List<Series>();
7 //设置legend内的data数组为series的name集合
8 List<string> legendList = new List<string>();
9 legendList.Add("Rental"); //这里的名称必须和series的每一组series的name保持一致
10 legendList.Add("Return");
11
12 Series rentalSeries = new Series();
13 rentalSeries.id = 0;
14 rentalSeries.name = "Rental";
15 rentalSeries.type = "line"; //线性图
16 rentalSeries.data = new List<object>();
17 rentalSeries.itemStyle = new itemStyle { normal = new normal { color = "#0099FF" } };
18
19 Series returnSeries = new Series();
20 returnSeries.id = 1;
21 returnSeries.name = "Return";
22 returnSeries.type = "line";
23 returnSeries.data = new List<object>();
24 returnSeries.itemStyle = new itemStyle { normal = new normal { color = "#00CC00" } };
25 Random rd = new Random();
26 for (int i = 6; i <= 23; i++)
27 {
28 categoryList.Add(i.ToString());
29 rentalSeries.data.Add(rd.Next(0, 801));
30 returnSeries.data.Add(rd.Next(0, 801));
31 }
32
33 //将sereis对象加入sereis数组列表内
34 seriesList.Add(rentalSeries);
35 seriesList.Add(returnSeries);
36 var newObj = new
37 {
38 category = categoryList,
39 series = seriesList,
40 legend = legendList
41 };
42
43 return Json(newObj, JsonRequestBehavior.AllowGet);
44 }  

   5、创建图表

 1     <script type="text/javascript">
2 $(document).ready(function () {
3 func_echarts_pie_rentalreturn();
4 });
5
6 function func_echarts_pie_rentalreturn() {
7 // 基于准备好的dom,初始化echarts实例
8 var myChart = echarts.init(document.getElementById('chart_rentalreturn'));
9
10 // 指定图表的配置项和数据
11 var option = {
12 title: {
13 text: 'Rental/Return Frequency (Unit X:Hour Y:Times)',
14 bottom: '92%'
15 },
16 tooltip: {
17 trigger: 'axis'
18 },
19 legend: {
20 data: ['Rental', 'Return'],
21 bottom: '87%'
22 },
23 grid: {
24 left: '3%',
25 right: '4%',
26 bottom: '3%',
27 containLabel: true
28 },
29 toolbox: {
30 feature: {
31 saveAsImage: {}
32 }
33 },
34 xAxis: {
35 type: 'category',
36 boundaryGap: false
37 },
38 yAxis: {
39 type: 'value'
40 },
41 series: []
42 };
43
44 $.ajax({
45 type: "post",
46 url: "/Home/GetEchartsRentalReturn",
47 data:
48 {
49 async: false,
50 operate: "myChart"
51 },
52 dataType: "json", //返回数据形式为json
53 success: function (result) {
54 for (var i = 0; i < result.length; i++) {
55 result[i].name;
56 }
57 option.xAxis.data = result.category;
58 option.series = result.series;
59 option.legend.data = result.legend;
60 myChart.setOption(option);
61 },
62 error: function (errorMsg) {
63 //请求失败时执行该函数
64 alert("图表请求数据失败!");
65 }
66 });
67 }
68 </script>

   6、图表效果显示

结语:使用ECharts之后,觉得功能很强大,可以满足任何图表的需求,需要的功能都可以在官网的示例中找到。这里只写了一个简单的使用,其余的可根据官网示例自行摸索。

MSChart源码下载:

  链接:https://pan.baidu.com/s/1RF0mYfssp6cmRAEJV2Bv8g
  提取码:lju8

Echarts的使用教程的更多相关文章

  1. Echarts 甘特图教程

    Echarts甘特图教程  echarts官网实例: https://gallery.echartsjs.com/editor.html?c=xEYpsVs30s 效果:  代码: <html& ...

  2. ECharts概念学习系列之ECharts官网教程之在 webpack 中使用 ECharts(图文详解)

    不多说,直接上干货! 官网 http://echarts.baidu.com/tutorial.html#%E5%9C%A8%20webpack%20%E4%B8%AD%E4%BD%BF%E7%94% ...

  3. ECharts概念学习系列之ECharts官网教程之自定义构建 ECharts(图文详解)

    不多说,直接上干货! 官网 http://echarts.baidu.com/tutorial.html#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%9E%84%E5%BB%BA%2 ...

  4. ECharts数据图表系统? 5分钟上手!

    目录: 前言 简介 方法一:模块化单文件引入(推荐) 方法二:标签式单文件引入 [前言] 最近在捣鼓各种插件各种框架,发现这个ECharts还是比较不错的,文档也挺全的,还是中文的,给大家推荐一下. ...

  5. 基于Servlet的Echarts例子(2018-12-26更新)

    引子 ECharts是百度出品的,一个使用 JavaScript 实现的开源可视化库.程序员在Web页面上引入并稍作配置就能做出漂亮的数据图表. 本篇文章简单介绍一下如何在JSP中使用Echarts, ...

  6. ECharts使用心得总结

    https://blog.csdn.net/whiteosk/article/details/52684053 项目中的图表形式很多,基本可以在ECharts中找到相应实例,但UI设计图中的图表跟百度 ...

  7. ECharts JS应用:图表页面实现

    因为要统计数据进行图表展示,所以就简单学习了 ECharts JS 的应用.它是一个纯Javascript图库,它依赖于一个轻量级的Canvas库 ZRender,并提供直观.生动.交互式和高度可定制 ...

  8. echarts初探:了解模块化

    什么是echarts?这是官网:http://echarts.baidu.com/ 简单的说就是百度提供的一些画图表的库,用它你可以简便的画出一些你想要的图表效果. 虽然蛮好用的,但对于不知道模块化的 ...

  9. 微信小程序引入ECharts组件

    首先打开ECharts网页 https://echarts.apache.org/zh/tutorial.html#%E5%9C%A8%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8 ...

随机推荐

  1. Asp.NetCore Web开发之RazorPage

    这节讲一下Razor页面. 首先要明确,Razor 不是一种编程语言.它是服务器端的标记语言,配合C#语言,就可以像PHP语言语言一样(但它们并不相同),处理HTML页面逻辑.它是Asp.NetCor ...

  2. WM_PAINT 与 WM_ERASEBKGND消息的深入分析

    当WM_PAINT消息不是由函数InvalidateRect产生的时(即通过最大话,最小化,移动,下拉菜单等),系统会先产生连续产生若干个WM_ERASEBKGND消息,紧接着在产生WM_PAINT消 ...

  3. Packing data with Python

    Defining how a sequence of bytes sits in a memory buffer or on disk can be challenging from time to ...

  4. DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)

    1. 引言 2. 配置数据库链接 3. 引入数据库驱动 4. 手动初始化数据库 5. 改写SQL 6. 其他 7. 参考 1. 引言 DataGear默认使用Derby数据库作为系统的元数据库,至于待 ...

  5. golang:数据类型总结

    Go语言将数据类型分为四类:基础类型.复合类型.引用类型和接口类型. 基础数据类型包括: 基础类型: - 布尔型.整型.浮点型.复数型.字符型.字符串型.错误类型. 复合数据类型包括: - 指针.数组 ...

  6. CSS变量和浏览器前缀

    一.CSS变量 CSS变量是CSS的新特性,大多数浏览器都实现了这个功能,使用CSS变量有利代码复用,而且当我们修改变量值时,所有引用该变量的属性都会发生改变. 定义变量后可以有两种使用方法,第一种时 ...

  7. CentOS 8 配置 VNC Server

    CentOS 8 配置 VNC Server 2020-12-31 | 标签: centos, vnc 前言 CentOS 8 配置 VNC Server, 使用户可以远程访问,本例介绍安装和配置流程 ...

  8. top,它们的意思分别是1分钟、5分钟、15分钟内系统的平均负荷。

    理解Linux系统负荷   作者: 阮一峰 日期: 2011年7月31日   一.查看系统负荷 如果你的电脑很慢,你或许想查看一下,它的工作量是否太大了. 在Linux系统中,我们一般使用uptime ...

  9. Centos6下通过 oprofile分析CPU性能

    Centos6下通过 oprofile分析CPU性能 2014-01-18 10:55:15 bobpen 阅读数 2218更多 分类专栏: linux   版权声明:本文为博主原创文章,遵循CC 4 ...

  10. 010.kubernets的调度系统之daemonset

    daemonset简单操作使用 Deployment 是 Kubernetes 中用于处理无状态服务的资源,而 StatefulSet 是用于支持有状态服务的资源,这两种不同的资源从状态的角度对服务进 ...