Professional Documents
Culture Documents
026
应用 Zedgraph 高效开发数据图表
朱亦钢
(北京航空材料研究院材料数据中心,北京 100095)
Abstract: Graphic chart is an effective method to let the user easy and rapid understands the tendency of data. For the soft-
ware based on .Net framework, Zedgraph class library is a practical tool to rapid develop graphic chart. This library can be
used in either windows or Web program. Due to the source code opened, it is flexible in use. This paper describes the usage
of the software according to public material from internet and the experience in using. From the download and installation
methods to the use in different cases and its technique notes, the samples in paper demonstrate the using of Zedgraph step
by step.
Key words: chart; Zedgraph; C#.NET; UI; open source
1 引言 计时拖放图形化的控件到窗体中。以下步骤通过实例叙述在
图表是对数据进行分析评估的常用工具,也是最直观的 Windows 程序开发中的设计时使用,代码源自 ZedGraph Wiki
表示数据的方法。用户界面中使用适当的图表来表现数据, 网页资源,做了部分修改,此处使用的是版本 5.0.10 的类库,
可提高软件的性能和数据的可读性,数据库查询和数据分析 对应于 VS.NET 2005 开发平台。
中采用图表代替数据列表,能带给用户快速直观的判断,例
如股票 K 线均线和成交变化的走势图。许多专用数据分析软
件如 Excel、Origin 等都具有图形报表功能,但在软件开发项
目中需要动态图形表示时,集成使用这些专业分析软件或绘
图软件,经常遇到一定的条件限制。从头编写 GDI 虽然理论
上完全可以实现,但无疑是低效率的方法。从开源代码中,
应用 Zedgraph 是在.NET 平台开发图表界面的不错选择。
Zedgraph 是一个比较新的开源类库,使用 C# 语言编写,
用来创建基于任意数据集的多种二维图形图像。类库编写是
面向对象的,在编程使用时有着很强的灵活性,开发者可以
修改并覆盖几乎所有图表特性的默认值,包括数值范围、数
图 1 Zedgraph 的多种类型图表
值单位、步长等。由于是开源代码,必要时还可以对源代码
进行修改,重新生成。类库允许在一张图表中显示多个数值 (1) 打开 Visual Studio 2005 中文版。
范围、多种单位以及多个坐标轴。图 1 是 Zedgraph 设计时应 (2) 从“文件”菜单中选择“新建”“项目…”。
用的控件默认显示,其中包含堆叠的柱状图、透明的覆盖图 (3) 选择“Windows 应用程序”,取名为“ZedGraphSam-
以及填充图的图表,还包含了图例和注释。 ple”。
2 应用方法 (4) 在解决方案浏览窗口上,右键点击 “引用”选择
2.1 Windows 应用程序 “添加引用…”。
Zedgraph 的使用可以在运行时实例化对象,也可以在设 (5) 选择“浏览”标签,导航到 ZedGraph.dll,点击“确
定”。可看到项目引用中增加了 ZedGraph。
本文收稿日期:2009-2-28
- 59 -
电脑编程技巧与维护
- 60 -
DATABASE AND INFORMATION MANAGEMENT 数据库和信息管理
- 61 -
电脑编程技巧与维护
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
(上接第 61 页) 像产生方式,对使用中的要点作了说明。
下一步修改项目生成的 Default.aspx 页,在设计方式中添
表 1 Zedgraph 使用中常见的定制对象
加 进 ZedGraphWeb 控 件 之 后 , 添 加 ZedGraphWeb1_Render-
类名 说明
Graph 事件函数,方法与上例相同。下面是 Default.aspx 页面
对多个图形进行管理的类,派生于 PaneBase。其使用不是
文件的全部内容:
MasterPane 必须的,因为可以直接使用 GraphPane,但它提供了规划编排
<%@ Page Language=" C#" CodeFile=" Default.aspx.cs" 和管理 GraphPane 的方法。
Inherits=" Default" %> 画图主要类,由 PaneBase 派生,包括所有其它的类作为其属
GraphPane
<%@ Register TagPrefix=" zgw" Namespace=" ZedGraph. 性,也包括控件中图的标题、图框、轴、
背景等。
Web" Assembly=" ZedGraph.Web" %> Axis 类的子类,包括轴的许多表示,如刻度、
网格、
颜色、
画笔、
XAxis, YAxis, Y2Axis
<ZGW:ZEDGRAPHWEB id = " ZedGraphWeb1" runat = " 字体、标题和样式。
server" width = " 300" Height = " 200" RenderMode = " 维护 Axis 类的一个类实例。包括比例范围、
步长、
格式和显示
3 控件常用的定制类 CurveList
维护 CurveItem 对象列表的集合类,曲线在这个列表中的顺序
决定画图的叠放顺序,最后的曲线在所有其它曲线之后。
经过上面的过程之后,可以尝试各种不同的图形。Zed-
在画点对象上附加位置信息的抽象基类,TextObj, ImageObj,
graph 具有很大的灵活性,通过修改作图属性,能在很大的范 GraphObj LineObj, ArrowObj, EllipseObj, BoxObj, 和 PolyObj 都源于
围改变画法。图形的所有部件都封装在类结构中,它们具有 GraphObj。
对象列表的集合类。对象在这个列表中的顺序加上 ZOrder
控制输出的可修改属性,表 1 列出了部分 Zedgraph 控件的常
GraphObjList 属性决定画图的叠放顺序,在 ZOrder 值相同的情况下,最后
用对象,便于进一步改变图形时参考。对于每个类的具体细 的项在所有其它项之后。
节可参考 Zedgraph 的 XML 文档。 包括图上文字字体系列、颜色、角度、大小、样式、框架和填充
-124-