项目中需要使用图表,最初使用的.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

最新文章

  1. 使用markdown
  2. 今天无意发现jquery的一个以前的误导
  3. 用cookie记住用户名
  4. IE6中position:fixed无效问题解决
  5. [Doc ID 433386.1]JSP Pages Hanging in R12 After Removing Cached Class Files in _pages
  6. java模拟get/post提交
  7. java字符串输出
  8. class 添加样式,删,开关 【选择】addClass,removeClass,toggleClass
  9. LwIP学习笔记——STM32 ENC28J60移植与入门
  10. MVC使用百度开源文本编辑器UEditor实现图文并茂,字数限制,上传图片或涂鸦
  11. HDU 3835 R(N)(枚举)
  12. js架构设计模式——理解javascript中的MVVM开发模式
  13. 微服务时代TestOps工程师学习总结
  14. [国嵌攻略][070-095][Linux编程函数手册]
  15. I/O控制的主要功能
  16. 打印进度条&gt;&gt;&gt;&gt;
  17. Python Redis中Scan遇到问题
  18. 安装zookeeper遇到的问题
  19. ubuntu下上传本地代码到github
  20. 基于.NET Core2的图片上传

热门文章

  1. [花式栈溢出]栈上的 partial overwrite
  2. locustfile中的User类和HttpUser类
  3. netcore3.1 webapi使用signalR
  4. 浅谈CRM系统的选型和实施
  5. Office&#183;Word高级&#183;VBA基础概念语法
  6. iUploader 2.0 七牛云上传工具
  7. [bug] vscode output 输出乱码
  8. [刷题] 1016 部分A+B (15分)
  9. Nginx——Docker下安装部署
  10. Linux中级之keepalived配置