是很好的.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; i++)
{
double x = (double)new XDate(DateTime.Now.AddSeconds(-(100 - i)));
double y = ran.NextDouble();
list.Add(x, y);
}
DateTime dt = DateTime.Now;
评论4