.NET 的绘图控件ZedGraph
来源:互联网 发布:淘宝新手卖家 编辑:程序博客网 时间:2024/05/18 01:38
该控件来自于CodeProject
http://www.codeproject.com/KB/graphics/zedgraph.aspx
我大多的.NET程序的绘图程序都用的是这个控件。下面是这个控件的文档翻译及其基本使用方法。
A flexible charting library for .NET- Download source files (.NET 1.1 and .NET 2.0)
- Download dll only (.NET 1.1 and .NET 2.0)
- Download C# Sample Project
- Download VB Sample Project
- Download thelatest versions from SourceForge
一个灵活的.NET绘图库
Looking for a way to draw 2D line graphs with C#? Here's yet another charting class library with a high degree of configurability, that is also easy to use.
正在寻找利用C#画二维线型图像的方法吗?这个就是高度可配置的绘图类库,当然,他也是非常容易用的。
Introduction
ZedGraph是一个类库,为Windows Forms 设计的用户控件,该控件可以通过专业的数据资料创建2D线、Bar和Pie图像。该类库提供高度的灵活性——几乎每一个图像的部分都能由用户修改。于此同时,通过为所有图像的属性提供缺省值使类库的用法保持简单。类库中包括选择合适的刻度因数范围和基于被显示值的的数据范围的步长值的代码。此外,ZedGraph 兼容于.NET 2.0和VS.NET 2005.
ZeGraph 是作为开源开发工程在SourceForge被维护的。该网站包括该项目的wiki、文档、更新历史和所有的发行版本。
Wiki上含有一套简单的图像实例由公开的代码完成(许多的例子包括C#和VB代码)。
Background
ZedGraphWiki
Using ZedGraph as a UserControl
将ZedGraph作为一个控件可由Visual Studio.NET的控件工具箱中获取。
右击工具箱->选择项
点击浏览定位到 zedgraph.dll文件,并添加。
一旦添加了此文件,你会看到ZedGraphControl选项在工具箱中。如下图
- 在项目主菜单->选择添加引用->添加ZedGraph.dll,然后点击OK,重复这个过程添ZedGraph.Web.dll,这将包括所有的ZedGraph功能在你的工程中。
- 添加using ZedGraph;语句到你的主Form代码中
- 在Form设计器中,从工具箱中拖拽ZedGraphControl到From上,按照你的意愿修改其大小和位置。你现在在你的Form中就有了一个ZedGraph控件。如下图
- 所有的ZedGraph功能都可以通过ZedGraphControl.MasterPane属性来访问,提供ZedGraphControl.GraphPane来引用第一个GraphPane在主MasterPane列表中。(下面会解释这句话的意思)。
- 在Form设计器中双击Form(不是ZedGraphControl)。这将会放置一个Form1_Load()模板在你的代码文件中。
- 在Form设计器中,激活Form后定位到属性中的事件如图,双击Resizes事件,这时Form1_Resize相应的函数模板将出现在在代码文件中。
- 修改Form1_Load()和Form1_Resize()方法,按照下面的代码添加CreateGraph() and
SetSize()
方法。(这里假定你的控件名称为zedGraphControl1) //
form 'Resize' 的事件相应方法 private void Form1_Resize( object sender, EventArgs e )
{
SetSize();
}
//SetSize() 是独立于Resize()的,所以我们能够独立的调用他通过Form1_Load() 方法。//这将保留10像素环绕控件的外部边缘,定制这些使之适合你的需要。
private void SetSize()
{
zedGraphControl1.Location = new Point( 10, 10 ); //保留一个小的页面空白在控件的周围
zedGraphControl1.Size = new Size( ClientRectangle.Width - 20,
ClientRectangle.Height - 20 );
}
// Load事件的相应函数
private void Form1_Load( object sender, EventArgs e )
{
// 装载图像
CreateGraph( zedGraphControl1 ); //设定控件的大小填充form
SetSize();
}
// 创建图像
private void CreateGraph( ZedGraphControl zgc )
{//得到GraphPane的引用
GraphPane myPane = zgc.GraphPane;
// 设置标题
myPane.Title.Text = "My Test Graph\n(For CodeProject Sample)";
myPane.XAxis.Title.Text = "My X Axis";
myPane.YAxis.Title.Text = "My Y Axis";
//生成正弦函数的数据集合
double x, y1, y2;
PointPairList list1 = new PointPairList();
PointPairList list2 = new PointPairList();
for ( int i = 0; i < 36; i++ )
{
x = (double)i + 5;
y1 = 1.5 + Math.Sin( (double)i * 0.2 );
y2 = 3.0 * ( 1.5 + Math.Sin( (double)i * 0.2 ) );
list1.Add( x, y1 );
list2.Add( x, y2 );
}
//用钻石符合形状生成红色的曲线和图例
LineItem myCurve = myPane.AddCurve( "Porsche",
list1, Color.Red, SymbolType.Diamond );
//利用圆型的符号生成蓝色的曲线和图例
LineItem myCurve2 = myPane.AddCurve( "Piper",
list2, Color.Blue, SymbolType.Circle );
//告诉ZedGraph 去重新描绘坐标轴当数据变化时
zgc.AxisChange();
}- 每次添加或改变数据的时候调用AxisChange()方法。这将告诉ZedGraph去重新计算坐标轴的范围,(注意:这是AxisChange()的功能——你可以在任何你喜欢的时候调用这个方法,他会基于当前坐标点数据集合来更新坐标范围,如果你不希望坐标轴被重新调节,你也可以避免调用AxisChange())
8. 执行效果
ZedGraph 允许你通过多种途径更改图形的属性,图像的每个部分都被打包成一个类结构体,这个结构体有可更改的属性去控制图形的输出。下面就是一些在ZedGraph中提供的类(注意这些类是XML文档,详细的细节中每个类请看ZedGraph documentation )
YAxis
, Y2Axis
Log
, Text
, Date
, Ordinal
, Exponent
,LinearAsOrdinal
, and DateAsOrdinal
scales的不同而不同。
BarItem
,HiLowBarItem
, ErrorBarItem
, PieItem
, StickItem
, OHLCBarItem
, and JapaneseCandleStickItem
都继承于此类。
一个集合类维护了一个CurveItem的对象链表。在链表中的曲线的顺序控制着 Z-顺序为了绘图。在链表中最后的曲线将会出现在其她的曲线之后。
ImageObj
, LineObj
, ArrowObj
, EllipseObj
,BoxObj
, and PolyObj
都继承自GraphObj
.
一个维护GraphObj链表的集合类。
包括字体信息的功能类,主要是关于图像上字体的颜色、角度、大小、样式、框架和字体的背景填充。每一个包含字体信息的类将会包含一个或几个FontSpec的对象去相应的描述相关联的字体。
包括背景颜色特性的功能类。每一个含有色彩填充能力的对象都包含一个或多个Fill对象去相应的描述相关联的颜色填充。
包括边框特性的功能类。每一个含有边框描述能力的对象都包含一个或多个Border对象去相应的描述相关联的边框线形和颜色。
通过访问上面的每一个类的属性来修改图像。例如,如果你包括下面的代码在你的CreateGraph()方法中, 放在前述的代码示例之后,输出图像将会相应的改变。
最终的效果如下所示:
转自:http://blog.sina.com.cn/s/blog_4b94ff130100gbk5.html
- .NET 的绘图控件ZedGraph
- C#.NET常见问题(FAQ)-如何使用2D绘图控件ZedGraph绘制坐标轴和坐标曲线
- ZedGraph控件的应用
- ZedGraph控件的使用
- ZedGraph控件的使用
- ZedGraph 控件的使用
- ZedGraph控件的使用
- 【ZedGraph】控件的使用
- NET控件ZedGraph使用帮助
- VS.Net中使用ZedGraph控件的一些记录
- zedgraph绘图
- c# zedgraph控件的简单例子
- Asp.Net 中ZedGraph的应用!
- 开源图表控件ZedGraph控件的研究
- 開源圖表控件ZedGraph
- ZedGraph画图控件
- zedgraph控件使用
- zedgraph控件的一些比较有用的属性
- c#操作word VBA简单应用
- 各种编码方式
- Javascript的执行过程详细研究
- 怎么样安装arm-linux-gcc
- threadpool
- .NET 的绘图控件ZedGraph
- MVC下载文件方式
- 交换机的基本配置
- SAP宣布58亿美元收购Sybase移动平台和数据库业务
- 根据汇报获取某个职位的上级职位
- Centos6 安装 gnome桌面
- java继承并重写方法时抛出一样的异常或不抛异常,既不能多也不能少,范围既不能打也不能小
- linux fork 函数解析
- Mina入门:Java NIO框架Mina、Netty、Grizzly介绍与对比