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

上传人:b****4 文档编号:5427284 上传时间:2022-12-16 格式:DOCX 页数:38 大小:639.42KB
下载 相关 举报
ZedGraph控件属性及基础教程详解.docx_第1页
第1页 / 共38页
ZedGraph控件属性及基础教程详解.docx_第2页
第2页 / 共38页
ZedGraph控件属性及基础教程详解.docx_第3页
第3页 / 共38页
ZedGraph控件属性及基础教程详解.docx_第4页
第4页 / 共38页
ZedGraph控件属性及基础教程详解.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

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

《ZedGraph控件属性及基础教程详解.docx》由会员分享,可在线阅读,更多相关《ZedGraph控件属性及基础教程详解.docx(38页珍藏版)》请在冰豆网上搜索。

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

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

ZedGraph控件属性设置

ZedGraph是一个非常优秀的开源的作图控件

ZedGraph来源:

ZedGraph相关例子资源:

http:

//zedgraph.org/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             大刻度步长

                MajorStepAuto      是否自动设置大刻度步长

                MajorUnit              大刻度步长单位

                Max                     刻度最大值

                MaxAuto               根据输入数据自动设置刻度最大值

                Min                      刻度最小值

                MinAuto                根据输入数据自动设置刻度最小值

                MinGrace              不清楚,没试过

                MinorStep             小刻度步长

                MinorStepAuto      是否自动设置小刻度步长

                MinorUnit              小刻度单位

          Type                          数据显示方式

                                            Liner直接现实(自动)

                                            Date按日期方式显示

                                            Log按指数幂方式显示

                                            Ordinal顺序显示

     Y2Axis                             第二个Y轴坐标信息显示(具体设置看X轴)

     Yaxis                               第一个Y轴坐标信息显示(具体设置看X轴)

GraphPane

     BarBase                           在生成柱状图的时候设置柱状是基于X轴还是其他轴

     BarType                           柱状的类型叠加或其他。

     IsFontsScaled                   图比例变化时候图表上的文字是否跟着自动缩放

     IsIgnoreInitial                   是否忽略初始值

     IsIgnoreMissing                是否忽略缺省值

     IsPenWidthScaled             图比例变化时候图表上的画笔的粗细是否跟着自动缩放

     IsShowTitle                      图表标题是否显示

     PaneFill                           Pane的一些填充信息

MasterPane

     BaseDimension                 缩放比例基数(可以试试效果)

     

数据                                      未测试过。

不知道如何和数据库绑定

外观                

     IsImageMap                     不清楚干吗用的

行为

     AxisChaneged                  是否允许自动绘图(没试过,一般都true,动态绘图)

     CacheDuration                  Cache保存时间0

     OutputFormat                  输出格式

     RenderedImagePath          输出路径

     RenderMode                     输出模式,不太清楚一般都是ImageTag,另一个输出的是乱码不是图片

对于图表而言,一般是三种表现形式:

柱状图、饼状图和点线图。

 

基本教程篇--第一节:

InitialSampleDemo.cs介绍

为了讲解方便,我先附上源代码和效果图。

代码如下:

usingSystem;

usingSystem.Drawing;

usingSystem.Collections;

usingZedGraph;

namespaceZedGraph.Demo

{

    ///

    ///SummarydescriptionforSimpleDemo.

    ///

    publicclassInitialSampleDemo:

DemoBase

    {

          publicInitialSampleDemo():

base("CodeProjectInitialSample","InitialSample",DemoType.Tutorial)

          {

               GraphPanemyPane=base.GraphPane;

               //Setthetitleandaxislabels

               myPane.Title="MyTestGraph\n(ForCodeProjectSample)";

               myPane.XAxis.Title="MyXAxis";

               myPane.YAxis.Title="MyYAxis";

               

               //MakeupsomedataarraysbasedontheSinefunction

               PointPairListlist1=newPointPairList();

               PointPairListlist2=newPointPairList();

               for(inti=0;i<36;i++)

               {

                    doublex=(double)i+5;

                    doubley1=1.5+Math.Sin((double)i*0.2);

                    doubley2=3.0*(1.5+Math.Sin((double)i*0.2));

                    list1.Add(x,y1);

                    list2.Add(x,y2);

               }

               //Generatearedcurvewithdiamond

               //symbols,and"Porsche"inthelegend

               LineItemmyCurve=myPane.AddCurve("Porsche",list1,Color.Red,SymbolType.Diamond);

               //Generateabluecurvewithcircle

               //symbols,and"Piper"inthelegend

               LineItemmyCurve2=myPane.AddCurve("Piper",list2,Color.Blue,SymbolType.Circle);

               base.ZedGraphControl.AxisChange();

          }

    }

}

       我们可以看到,InitialSampleDemo继承自CemoBase类,而DemoBase又继承自ZedGraphDemo这个接口。

ZedGraphDemo接口定义了StringDescription、StringTitle、ZedGraph.ZedGraphControlZedGraphControl和System.Collection.ICollectionTypes这四个属性。

DemoBase除了实现这四个属性外,还添加了PaneBasePane和MasterPaneMasterPane这两个属性,此外DemoBase还实现了多载构造函数。

关于各个类的具体含义和用法,我会在以后的篇幅中陆续介绍。

这里只是给大家一个整体的大致结构。

       下面进行对代码的分析,由于这是第一个例子,所有我会讲得比较细,以后的例子就不会了。

       我们可以看到程序首先

publicInitialSampleDemo():

base("CodeProjectInitialSample", "InitialSample",DemoType.Tutorial)

初始化基类的构造函数。

基类重载了四个构造函数

publicDemoBase(stringdescription,stringtitle,DemoTypetype)

          {

               ArrayListtypes=newArrayList();

               types.Add(type);

               Init(description,title,types);

          }

          publicDemoBase(stringdescription,stringtitle,DemoTypetype,DemoTypetype2)

          {

               ArrayListtypes=newArrayList();

               types.Add(type);

               types.Add(type2);

               Init(description,title,types);

          }

          publicDemoBase(stringdescription,stringtitle,ICollectiontypes)

          {

               Init(description,title,types);

          }

          privatevoidInit(stringdescription,stringtitle,ICollectiontypes)

          {

               this.description=description;

               this.title=title;

               this.types=types;

               control=newZedGraphControl();

          }

函数中的变量含义如下:

Description:

对此结构的描述。

Title:

在树形结构(TreeView)中显示的标题。

Types:

要把此类显示在哪个树形结构的区域中。

若有多个Types,则把此类分入不同的树形区域中。

例如MasterPaneSample在TutorialSample和SpecialFeatures两个区域都有。

见图中的相应区域标注。

                myPane.Title="MyTestGraph\n(ForCodeProjectSample)";

               myPane.XAxis.Title="MyXAxis";

               myPane.YAxis.Title="MyYAxis";

    分别指定这个Pane的title、XAxis和YAxis的标题。

见上图。

                PointPairListlist1=newPointPairList();

               PointPairListlist2=newPointPairList();

               for(inti=0;i<36;i++)

               {

                    doublex=(double)i+5;

                    doubley1=1.5+Math.Sin((double)i*0.2);

                    doubley2=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)的坐标类。

其中的for循环在为两个PointPairList复值。

 

LineItemmyCurve=myPane.AddCurve("Porsche",list1,Color.Red,SymbolType.Diamond);

LineItem类是ZedGraph中的线条类.

myPane.AddCurve("Porsche",list1,Color.Red,SymbolType.Diamond);

的意思是将刚刚赋值的list以”Porsche”这个名字以红色和水晶形状画到Pane中,这个函数的返回值是一个LineItem。

你可以通过myCurve这个变量来对它进行进一步的设定。

其中SymbolType是个Enum,它枚举了12个可供使用的形状

 

最后一步就是刷新了。

base.ZedGraphControl.AxisChange();

这样整个程序就完成了,简单吧,其实这是个简单的应该,以后会介绍更加复杂的用法和类库。

基本教程篇--第二节:

ModInitialSampleDemo.cs介绍

为了讲解方便,我先附上源代码和效果图。

代码如下:

usingSystem;

usingSystem.Drawing;

usingSystem.Collections;

usingZedGraph;

namespaceZedGraph.Demo

{

    ///

    ///SummarydescriptionforSimpleDemo.

    ///

    publicclassModInitialSampleDemo:

DemoBase

    {

          publicModInitialSampleDemo():

base("CodeProjectModifiedInitialSample",

               "ModifiedInitialSample",DemoType.Tutorial)

          {

               GraphPanemyPane=base.GraphPane;

               //Setupthetitleandaxislabels

               myPane.Title="MyTestGraph\n(ForCodeProjectSample)";

               myPane.XAxis.Title="MyXAxis";

               myPane.YAxis.Title="MyYAxis";

               //MakeupsomedataarraysbasedontheSinefunction

      

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1