



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用ZedGraph制作动态更新的统计图/dahuzizyd/archive/2007/01/16/621494.html因为项目要做一个曲线折图,就到网上找了找,发现ZedGraph这个开源的控件,看了下,发现还不错,但这个是外国佬写的,说明什么的是全英文,但还是很好懂 的,又发现一篇关于这个控件的中文文章,转过来收藏学习了。本文转自:/dahuzizyd/articles/621494.htmlZedGraph是很好的.net下的统计图开源项目,在以前的一篇随笔中提到,与其他的一些统计图控件相比,ZedGraph由于是直接在画布上作画,而不是生成图片显示,所以性能比较好,在诸如股市的实时走势图,显示cpu使用率等实时性较强的应用中有很好的表现,方法并不难,但是由于很少有人写这方面的文章,又正巧在其他论坛中看到有这方面的问题,所以写了下面的例子。 ZedGraph在描画折线图的时候,将所有的坐标点都保存在PointPairList中,在画线的时候以这个为X,Y坐标。要作动态的折线图,实际上就是不断在这个PointPairList中添加点坐标,然后刷新就可以了。 代码很简单:Random ran = new Random();PointPairList list = new PointPairList();LineItem myCurve ;Random用来生成示例数据,也就是Y坐标,PointPairList用来存放点集合。myCarve就是要画的线了。当然,不能忘了在窗体上添加zedGraph的控件。为了突出效果,我们在Form的Load事件中加上下面的代码:this.zedGraphControl1.GraphPane.Title.Text = 动态折线图;this.zedGraphControl1.GraphPane.XAxis.Title.Text = 时间;this.zedGraphControl1.GraphPane.YAxis.Title.Text = 数量;this.zedGraphControl1.GraphPane.XAxis.Type = ZedGraph.AxisType.DateAsOrdinal; for (int i = 0; i = 100) list.RemoveAt(0); 如果要象windows任务管理器中的cpu使用率那样,刚开始的时候是空的,随着时间的推移才逐渐画满,可以在初始化的时候填几个Y坐标为0的点:for (int i = 0; i = 100; i+) double x = (double)new XDate(DateTime.Now.AddSeconds(-(100 - i); double y = 0; list.Add(x, y); 实际上,代码是比较简单的,关键就在于性能,在上面的代码中,在生成折线的时候使用的是 SymbolType.None,如果使用其他几种,折点可以表示为方型,星形等图形,性能就要下降很多,例如,按照上面的代码,在我 windows2000 专业版,赛扬1.7G,512内存的条件下,可以显示10000个点,而且没有明显的停顿现象,但是如果将折点的图形设置为 SymbolType.Diamond,例如下图这样:在10000个点的情况下停顿现象非常严重,实际上,不到2000个点就已经有明显的感觉了。同时在描线的时候没有使用 抗锯齿,一样可以提高性能,不过,对性能的提升还是很有限的。如果以股市实时走势图为例,每天4个小时,如果每10秒更新一次,66041440, 可以看出ZedGraph完全可以适用。 /* * * 文件名:Form1; * 中文标识:画动态统计图; * 文件功能秒速:使用第三方控件zedgraph实现动态统计图; * 创建标识:ht20110405; * 日期:2011-04-05,星期二; * 编者:hetao; * * 修改标识: * 修改内容: * 修改日期: * */using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using ZedGraph;namespace zedGraphTwopublic partial class Form1 : Form public Form1() InitializeComponent(); Random ran= new Random(); PointPairList list= new PointPairList(); LineItem myCurve;private void Form1_Load(object sender, EventArgs e) this.zedGraphControl1.GraphPane.Title.Text= 动态折线图;this.zedGraphControl1.GraphPane.XAxis.Title.Text= 时间;this.zedGraphControl1.GraphPane.YAxis.Title.Text= 数量;this.zedGraphControl1.GraphPane.XAxis.Type= ZedGraph.AxisType.DateAsOrdinal;for (int i= 0; i= 100; i+) double x= (double)new XDate(DateTime.Now.AddSeconds(-(100 - i);double y= ran.NextDouble(); list.Add(x, y); DateTime dt= DateTime.Now; myCurve= zedGraphControl1.GraphPane.AddCurve(My Curve, list, Color.DarkGreen, SymbolType.None);this.zedGraphControl1.AxisChange();this.zedGraphControl1.Refresh(); private void timer1_Tick(object sender, EventArgs e) zedGraphControl1.GraphPane.XAxis.Scale.MaxAuto= true;double
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年中级软考过关检测试卷及答案详解(真题汇编)
- 2024-2025学年火电电力职业鉴定综合提升测试卷及完整答案详解(历年真题)
- 湖南长沙市望城区引进本科师范专业毕业的2025届教育-教育学硕士研究生笔试备考题库附答案详解
- 2024安全监察人员题库试题附答案详解【培优B卷】
- 2024-2025学年度广播电视编辑记者考前冲刺练习及参考答案详解【培优B卷】
- 2024法院司法辅助人员练习题及完整答案详解【名师系列】
- 2025年自考专业(计算机信息管理)考前冲刺练习试题含答案详解【夺分金卷】
- 2025年自考专业(人力资源管理)考试彩蛋押题含答案详解【突破训练】
- 语文学科基地创建材料
- 建筑工程实习报告范例
- GB 23466-2025听力防护装备的选择、使用和维护
- 人教PEP版(2024)四年级上册英语-Unit 3 Places we live in 单元整体教学设计(共6课时)
- 华为信息安全管理培训课件
- 贵阳市殡仪服务中心招聘考试真题2024
- 重庆市危险化学品企业变更管理实施指南(试行)解读2025.7.25
- 煤改电工程施工质量监控方案和措施
- 布病的护理教学课件
- (2025年标准)预售小麦协议书
- 2025年院感测试题及答案
- 公司培训防诈骗知识宣传课件
- 2025年全国《质量知识竞赛》题库及答案
评论
0/150
提交评论