ZedGraph控件属性及基础教程详解

  • 格式:pdf
  • 大小:1.05 MB
  • 文档页数:33
表现形式:柱状图、饼状图和点线图。
2 / 33
ZedGraph 属性及基础教程
基本教程篇--第一节:InitialSampleDemo.cs 介绍
为了讲解方便,我先附上源代码和效果图。
代码如下: using System; using System.Drawing; using System.Collections; using ZedGraph; namespace ZedGraph.Demo { ///<summary> /// Summary description for SimpleDemo. ///</summary> public class InitialSampleDemo : DemoBase { public InitialSampleDemo() : base( "Code Project Initial Sample","Initial Sample", DemoType.Tutorial ) { GraphPane myPane = base.GraphPane; // Set the title and axis labels 3 / 33
5 / 33
ZedGraph 属性及基础教程
myPane.Title = "My Test Graph\n(For CodeProject Sample)"; myPane.XAxis.Title = "My X Axis"; myPane.YAxis.Title = "My Y Axis"; 分别指定这个 Pane 的 title、XAxis 和 YAxis 的标题。见上图。 PointPairList list1 = new PointPairList(); PointPairList list2 = new PointPairList(); for ( int i=0; i<36; i++ ) { double x = (double) i + 5; double y1 = 1.5 + Math.Sin( (double) i * 0.2 ); double y2 = 3.0 * ( 1.5 + Math.Sin( (double) i * 0.2 ) ); list1.Add( x, y1 ); list2.Add( x, y2 ); } PointPairList 类是一个集合类,继承自 System.Object System.Collections.CollectionBase ZedGraph.CollectionPlus 它是 PointPair 对象的集合,PointPair 类是一个包含(X,Y)的坐标类。 6 / 33
是否自动设置大刻度步长 大刻度步长单位 刻度最大值 根据输入数据自动设置刻度最大值 刻度最小值 根据输入数据自动设置刻度最小值 不清楚,没试过 小刻度步长 是否自动设置小刻度步长 小刻度单位 数据显示方式 Liner 直接现实(自动) Date 按日期方式显示 Log 按指数幂方式显示 Ordinal 顺序显示 第二个 Y 轴坐标信息显示(具体设置看 X 轴) 第一个 Y 轴坐标信息显示(具体设置看 X 轴) 在生成柱状图的时候设置柱状是基于 X 轴还是其他轴 柱状的类型叠加或其他。 图比例变化时候图表上的文字是否跟着自动缩放 是否忽略初始值 是否忽略缺省值 图比例变化时候图表上的画笔的粗细是否跟着自动缩放 图表标题是否显示 Pane 的一些填充信息 缩放比例基数(可以试试效果) 未测试过。不知道如何和数据库绑定 不清楚干吗用的 是否允许自动绘图(没试过,一般都 true,动态绘图) Cache 保存时间 0 输出格式 输出路径 输出模式,不太清楚一般都是 ImageTag,另一个输出的是乱码不是图片
1 / 33
ZedGraph 属性及基础教程
MajorStepAuto MajorUnit Max MaxAuto Min MinAuto MinGrace MinorStep MinorStepAuto MinorUnit Type
Y2Axis Yaxis GraphPane BarBase BarType IsFontsScaled IsIgnoreInitial IsIgnoreMissing IsPenWidthScaled IsShowTitle PaneFill MasterPane BaseDimension 数据 外观 IsImageMap 行为 AxisChaneged CacheDuration OutputFormat RenderedImagePath RenderMode
ZedGraph 属性及基础教程 myPane.Title = "My Test Graph\n(For CodeProject Sample)"; myPane.XAxis.Title = "My X Axis"; myPane.YAxis.Title = "My Y Axis";
// Make up some data arrays based on the Sine function PointPairList list1 = new PointPairList(); PointPairList list2 = new PointPairList(); for ( int i=0; i<36; i++ ) { double x = (double) i + 5; double y1 = 1.5 + Math.Sin( (double) i * 0.2 ); double y2 = 3.0 * ( 1.5 + Math.Sin( (double) i * 0.2 ) ); list1.Add( x, y1 ); list2.Add( x, y2 ); } // Generate a red curve with diamond // symbols, and "Porsche" in the legend LineItem myCurve = myPane.AddCurve( "Porsche",list1, Color.Red, SymbolType.Diamond ); // Generate a blue curve with circle // symbols, and "Piper" in the legend LineItem myCurve2 = myPane.AddCurve( "Piper",list2, Color.Blue, SymbolType.Circle ); base.ZedGraphControl.AxisChange(); } } } 我们可以看到,InitialSampleDemo 继承自 CemoBase 类,而 DemoBase 又继承自 ZedGraphDemo 这个接口。ZedGraphDe mo 接口定义了 String Description、String Title、ZedGraph. ZedGraphControl ZedGraphControl 和 System.Collection.IColl ection Types 这四个属性。DemoBase 除了实现这四个属性外,还添加了 PaneBase Pane 和 MasterPane MasterPane 这两个属性, 此外 DemoBase 还实现了多载构造函数。关于各个类的具体含义和用法,我会在以后的篇幅中陆续介绍。这里只是给大家一个整体的大致结 构。 下面进行对代码的分析,由于这是第一个例子,所有我会讲得比较细,以后的例子就不会了。 我们可以看到程序首先 4 / 33
ZedGraph 属性及基础教程
ZedGraph 控件属性设置 ZedGraph 是一个非常优秀的开源的作图控件 ZedGraph 来源:/project/showfiles.php?group_id=114675 ZedGraph 相关例子资源:/wiki/index.php?title=Sample_Graphs 1、在 vs 中使用 ZedGraph 2、 基本一些概念 几个注意点: 图片的保存路径设置:RenderedImagePath 属性中设置,程序对该文件夹应该是有写和修改权限的 图片的输出格式:OutputFormat 属性中设置,Png 的推荐,比较清晰。 Chart ChartBorder 图表区域的边框设置 ChartFill 图表区域的背景填充 Legend 图表的注释标签显示设置项目,一组数据对应一种颜色的注释 IsHStack 当有多个显示项的时候设置 Y 轴数据是叠加的还是分开的 Xaxis 图表区域的 X 轴相关信息设置 AxisColor 坐标轴颜色 Cross 坐标的原点,可以设置坐标的偏移程度 CrossAuto 原点自动设置:True 的话 Cross 的设置就无效了。 FontSpec X 轴标题字体相关信息 Angle X 轴标题字体显示时候的角度,0 为水平 90 为垂直 Fill X 轴标题字体填充信息 ColorOpacity 透明度 IsScaled 设置 X 轴标题字体显示大小是否根据图的比例放大缩小 RangeMax 填充时候的最大倾斜度(有过渡色,没试过) RangeMin 填充时候的最小倾斜度(有过渡色,没试过) StringAlignment X 轴标题字体排列(不清楚,没试过) IsOmitMag 是否显示指数幂(10 次方,没试过,似乎与 IsUseTenPower 有关系) IsPreventLabelOverlap 坐标值显示是否允许重叠,如果 False 的话,控件会根据坐标值长度自动消除部 分坐标值的显示状态 IsShowTitle X 轴标题是否显示 IsTicsBetweenLabels 两个坐标值之间是否自动显示分隔标志 IsUseTenPower 是否使用 10 次幂指数 IsVisible 是否显示 X 轴 IsZeroLine 当数据为 0 时候是否显示(在饼状图显示的时候有用) MajorGrid 大跨度的 X 轴表格虚线线显示信息 DashOff 虚线中孔间距 DashOn 虚线单位长度 MajorTic 大跨度的 X 轴刻度信息 IsInside 在 Chart 内部是否显示 IsOutSide 在 Chart 外部是否显示 IsOpposite 在对面的轴上是否显示 MinorGrid 小跨度的 X 轴表格虚线显示信息 MinorTic 小跨度的 x 轴刻度信息 MinSpace 刻度和轴之间的距离(没试过) Scale 刻度值的一些设定 IsReverse X 轴的刻度值从高到低还是从低到高 MajorStep 大刻度步长