本章将介绍一些基本但常用的图形:线型图,柱状图和饼形图。

以上三种图形对于的数据都是键值对数组,请参考第一个例子:

@{
var data = new List<LineItem>();
var rd = new Random();
data.Add(new LineItem() { Name = "第一节车厢人数", Value = rd.Next(50) });
data.Add(new LineItem() { Name = "第二节车厢人数", Value = rd.Next(50) });
data.Add(new LineItem() { Name = "第三节车厢人数", Value = rd.Next(50) });
data.Add(new LineItem() { Name = "第四节车厢人数", Value = rd.Next(50) });
data.Add(new LineItem() { Name = "第五节车厢人数", Value = rd.Next(50) });
} @Html.Q().Chart().Line().SourceItem(data).ShowTool()

显示效果为:

如果大家希望以曲线方式显示,直接追加:ShowSmooth()方法即可,如果希望以区域图显示,则继续追加:ShowArea()即可。

第二个例子:动态更新

实现代码:

@Html.Q().Chart().Line().AjaxUrl("/Line/GetUpdatedData")

对应的Action实现代码为:

        public IActionResult GetUpdatedData()
{
var result = new List<LineItem>();
var rd = new Random();
result.Add(new LineItem() { Name = "第一节车厢人数", Value = rd.Next(50) });
result.Add(new LineItem() { Name = "第二节车厢人数", Value = rd.Next(50) });
result.Add(new LineItem() { Name = "第三节车厢人数", Value = rd.Next(50) });
result.Add(new LineItem() { Name = "第四节车厢人数", Value = rd.Next(50) });
result.Add(new LineItem() { Name = "第五节车厢人数", Value = rd.Next(50) });
return Json(result);
}

如果大家想实现动态更新追加的效果,则前端不动,将Action返回的数据出现新的Name即可,请参考如下例子:

      public IActionResult GetCpuUsedPercent()
{
var result = new List<LineItem>();
var rd = new Random();
result.Add(new LineItem() { Name = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Value = 100 + rd.Next(DateTime.Now.Second + 50) });
return Json(result);
}

对应的效果为:

第三个例子:柱状图与饼形图的实现。

柱状图与饼形图的使用方法和线状图一样,只是对应的控件分别为:Bar与Pie,代码如下:

@Html.Q().Chart().Bar().ShowStep().AjaxUrl("/Bar/AppendData")

@Html.Q().Chart().Pie().AjaxUrl("/Pie/AppendData").ShowTool().Title("车厢")

对于的效果图为:


总结:二维图形比较简单,但是却比较实用,希望尽可能将数据图形化展示,后面EasyMvc会尽量增加3D的显示。

更多使用示例请浏览在线示例:http://core.zwc.cn

EasyMvc入门教程-图形控件说明(21)线形图+柱状图+饼形图的更多相关文章

  1. EasyMvc入门教程-基本控件说明(8)提醒导航

    提醒导航顾名思义就是提醒大家注意某些文字了..请看下面的例子: 实现代码如下: @Html.Q().BlockRemind().Text("我可以作为提醒使用") 有的同学会说:这 ...

  2. EasyMvc入门教程-基本控件说明(11)菜单导航

    基本上,是个网站就会有菜单导航,目前流行的菜单是不是这样样子的? 似乎是bootstrap引领的风格,我们就用EasyMvc实现吧,上代码: @{ var data = new List<Men ...

  3. EasyMvc入门教程-基本控件说明(13)选项卡导航

    选项卡Tab导航主要用于企业页面显示不同子类或者子页面的信息内容. 先来一个基本的使用例子:代码如下: @{ var data = new List<TabItem>() { new Ta ...

  4. EasyMvc入门教程-基本控件说明(1)按钮

    按钮是我们最常用的控件之一了,先看下我们提供的按钮风格: 不同颜色的: 实现代码: @Html.Q().Button().Text("Danger").ColorDanger() ...

  5. EasyMvc入门教程-基本控件说明(4)折叠面板

    折叠面板一般出现在管理后台,大家用的OutLook里就是用了折叠面板,样子大概是这样的: 把其中的内容替换成图标按钮,是不是就是我们常见的样子了?:)那么如何实现呢?请看例子: @{ var data ...

  6. EasyMvc入门教程-基本控件说明(6)进度条

    进度条的发明是很牛逼的,就如12306采用了队列解决了系统崩溃的问题一样..:) 进度条大家都见过,那么我们先来实现一个简单的进度条,请看例子: @Html.Q().Progress().Value( ...

  7. EasyMvc入门教程-基本控件说明(12)栏目导航

    栏目导航一般用来显示当前页面所在的模块层级位置关系,如下图所示: 当然也有前端网站作为小栏目导航,凡是没有绝对,只要不违和就好:),下面上代码: @{ var data = new List<N ...

  8. EasyMvc入门教程-基本控件说明(2)定时器

    我们有时候希望系统能自动刷新后台数据或者做某个动作,那么定时器的作用就体现出来了. EasyMvc默认提供的服务器可以定时调前端方法与定时调后端方法,先看例子: 定时调客户端事件 实现代码: @Htm ...

  9. EasyMvc入门教程-基本控件说明(3)时间线

    我们有时候经常看到如下的页面: 或者快递物流信息图标,那么利用EasyMvc如何实现呢?很简单,看下面的例子: @{ var data=new List<TimeLineItem>() { ...

随机推荐

  1. Android onConfigurationChanged用法(规避横竖屏切换导致的重新调用onCreate方法)

    onConfigurationChanged的目的是为了规避横竖屏切换干掉activity而重新调用onCreate方法的问题:有的时候,我们希望重新进入OnCreate生命周期,此时可以调用onSa ...

  2. 第一章:前端布局之display属性

    css布局学习网站:http://zh.learnlayout.com

  3. 计算两个日期之间的天数差C++/java

    1--Java 分析:调用java中Calendar类 int days(Date date1,Date date2){ Calendar cal = new Calendar.getInstance ...

  4. 监视网络接口TCP状态信息数据有多种工具或命令。下面举例一些:

    nstat命令 nstat kernel ======= ss -s == netstat -i netstat -s ip -s link sar -n DEV 1

  5. GDOI2018 爆零记,Challenge Impossibility

    蒟蒻的GDOI又双叒叕考挂啦...... Day 0 && Day -1 学校月考,貌似考的还不错? 然而考完试再坐船去中山实在是慢啊......晚上10点才到酒店 wifi差评... ...

  6. cf 843 B Interactive LowerBound [随机化]

    题面: 传送门 思路: 这是一道交互题 比赛的时候我看到了直接跳过了...... 后来后面的题目卡住了就回来看这道题,发现其实比较水 实际上,从整个序列里面随机选1000个数出来询问,然后从里面找出比 ...

  7. UVA 12633 Super Rooks on Chessboard ——FFT

    发现对角线上的和是一个定值. 然后就不考虑斜着,可以处理出那些行和列是可以放置的. 然后FFT,统计出每一个可行的项的系数和就可以了. #include <map> #include &l ...

  8. [BZOJ2957] 楼房重建 (线段树,递归)

    题目链接 Solution 经典的一道线段树题,难点在于如何合并节点. 由于题目要求直线要求不相交,则斜率均大于前面的点即为答案. 所以以斜率为权值. 考虑线段树每一个节点维护两个值: \(Max\) ...

  9. 分布式存储ceph集群实践

    1.环境规划,三台主机 10.213.14.51/24            10.213.14.52/24       10.213.14.53/24    集群网络 172.140.140.11. ...

  10. 创建外网 ext

    虽然外部网络是已经存在的网络,但我们还是需要在 Neutron 中定义外部网络的对象,这样 router 才知道如何将租户网络和外部网络连接起来. 上一节我们已经为创建外部网络配置了ML2,本节将通过 ...