知识大全 使用ZedGraph制作动态更新的统计图

Posted 坐标

篇首语:白头若是雪可替,世上何来苦心人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用ZedGraph制作动态更新的统计图相关的知识,希望对你有一定的参考价值。

使用ZedGraph制作动态更新的统计图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ZedGraph是很好下的统计图开源项目 在以前的一篇随笔中提到 与其他的一些统计图控件相比 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 zedGraphControl GraphPane Title Text = 动态折线图 ;

  this zedGraphControl GraphPane XAxis Title Text = 时间 ;

  this zedGraphControl GraphPane YAxis Title Text = 数量 ;

  this zedGraphControl GraphPane XAxis Type = ZedGraph AxisType DateAsOrdinal;

  for (int i = ; i <= ; i++)

  

  double x = (double)new XDate(DateTime Now AddSeconds( ( i)));

  double y = ran NextDouble();

  list Add(x y);

  

  DateTime dt = DateTime Now;

  myCurve = zedGraphControl GraphPane AddCurve( My Curve

  list Color DarkGreen SymbolType None);

  this zedGraphControl AxisChange();

  this zedGraphControl Refresh();

  这样 窗体加载后就可以看到已经画出了一条折线图 可能象下面的样子

>

  但是现在 这条线现在还不会动 为了让它动起来就要定时给PointPairList中添加坐标

  添加一个Timer控件 设置Interval属性为 然后在Timer的Tick事件中添加代码

  zedGraphControl GraphPane XAxis Scale MaxAuto = true;

  double x = (double)new XDate(DateTime Now);

  double y = ran NextDouble();

  list Add(x y);

  this zedGraphControl AxisChange();

  this zedGraphControl Refresh();

  运行 就会看到线条动起来了

  如果要在折线图内显示指定数量的点 只需要在添加坐标之前把第一个坐标点去掉

  if (list Count >= )

  

  list RemoveAt( );

  

  如果要象windows任务管理器中的cpu使用率那样 刚开始的时候是空的 随着时间的推移才逐渐画满 可以在初始化的时候填几个Y坐标为 的点

  for (int i = ; i <= ; i++)

  

  double x = (double)new XDate(DateTime Now AddSeconds( ( i)));

  double y = ;

  list Add(x y);

  

  实际上 代码是比较简单的 关键就在于性能 在上面的代码中 在生成折线的时候使用的是SymbolType None 如果使用其他几种 折点可以表示为方型 星形等图形 性能就要下降很多 例如 按照上面的代码 在我windows 专业版 赛扬 G 内存的条件下 可以显示 个点 而且没有明显的停顿现象 但是如果将折点的图形设置为SymbolType Diamond 例如下图这样

>

  在 个点的情况下停顿现象非常严重 实际上 不到 个点就已经有明显的感觉了 同时在描线的时候没有使用抗锯齿 一样可以提高性能 不过 对性能的提升还是很有限的

cha138/Article/program/net/201311/12922

相关参考

知识大全 使用ZedGraph记录

使用ZedGraph记录  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!cha138/Ar

知识大全 JSP调用JavaBean在网页动态生成柱状图

JSP调用JavaBean在网页动态生成柱状图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我

各国美女美女内涵动态图

偶尔,我们总会在街头、网络发现那些美得让人窒息的身影。比如惊鸿一现的天然美女图片,也有韩国史上最美十大美女排行榜,当然也有下面:街头就餐舔舌头的清纯美女,超过百分之九十九的明星。海边随意的成熟风韵美女

知识大全 一个闷骚内向的男生平时基本上不发动态 最近更新好几条说自己是单身狗 还po生活动态是什么意思

一个闷骚内向的男生平时基本上不发动态最近更新好几条说自己是单身狗还po生活动态是什么意思渴望爱情一个闷骚内向的男生平时基本上不发动态最近更新好几条说自己是单身狗还po了一条生活动态是什么意思单身久了需

60种生物处理污水方法,动态图显示

本次介绍的是生物处理法,其中包括传统活性污泥法、曝气池、曝气装置、新工艺,以及生物接触氧化、生物流化床、生物滤池、生物转盘。超多超实在的内容。生物处理(一)——活性污泥法活性污泥法包括:传统活性污泥法

60种生物处理污水方法,动态图显示

本次介绍的是生物处理法,其中包括传统活性污泥法、曝气池、曝气装置、新工艺,以及生物接触氧化、生物流化床、生物滤池、生物转盘。超多超实在的内容。生物处理(一)——活性污泥法活性污泥法包括:传统活性污泥法

60种生物处理污水方法,动态图显示

本次介绍的是生物处理法,其中包括传统活性污泥法、曝气池、曝气装置、新工艺,以及生物接触氧化、生物流化床、生物滤池、生物转盘。超多超实在的内容。生物处理(一)——活性污泥法活性污泥法包括:传统活性污泥法

知识大全 基于windows平台的ZedGraph 应用

基于windows平台的ZedGraph应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  基于

知识大全 男生如何瘦腿个臀部,推荐一些动作或图片或动态图。

男生如何瘦腿个臀部,推荐一些动作或图片或动态图。快速瘦腿3天让腿发生惊人变化1【当你在公司】一、椅子瘦腿上班族长时间坐在办公桌前,腿部容易因缺乏运动而变胖。可利用坐着的机会做些运动减肥,达到消除疲劳及

知识大全 绘制二维图像的开源类库ZedGraph

绘制二维图像的开源类库ZedGraph  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  大家好最近