ZedGraph使用经验

开源的统计图控件中基本常用的是OpenFlashChar和ZedGraph,今天就先来讲讲ZedGraph的使用。

ZedGraph资源

 

ZedGraph的特点:

  • 第一,可以先生成图片后再显示,这对一些多用户并发有点帮助。(RenderMode.ImageTag)
  • 第二,可以动态生成,不用保存文件,可以减少IO的读写消耗。(RenderMode.RawImage)
  • 第三,比较多的呈现方式,比如曲线图、柱状图、饼图等。 

 

ZedGraph的缺点:

  • 第一,编码的时候,在设置属性时太烂了,一点注释都没有,不要说是中文的啦,就连英文都没有,太不方便了。
  • 第二,图表的显示比较简陋,没有OpenFlashChar来得好看。

 

注意事宜

  • 第一,当前的最新版本是5.1.5,我以前也使用过4.3.4的版本,这两个版本的差别很大,很多属性都已经不存在了,面向对象的感念可能加强了不少,也清晰了不少,因为现在的属性设置都是先实体,再属性了,而以前就比较混乱了。所以在使用不同的版本的时候要注意这点。
  • 第二,在Windows Forms和 ASP.Net Web Form中使用是不同。

 

一个简单的入门例子 

  • 第一,在 bin文件夹中加入 Zedgraph.dll 和Zedgraph.web.dll
  • 第二,添加这两个dll的引用;
  • 第三,在网站下要创建一个空文件夹,名称为 'ZedGraphImages',这个文件夹名称是默认的,要修改这个文件夹名称,可以修改属性 RenderedImagePath,CacheDuration缓存的持续时间。ZedGraph会生成一图片存放在缓存的目录中,显示图片时,会生成一个img标签代替ZedGraphWeb标签,并在一个时间内,"欺骗"浏览器加载这张图片;
  • 第四,在 aspx文件中加入:<%@ Register TagPrefix="zgw" Namespace="ZedGraph.Web" Assembly="ZedGraph.Web" %>;在html中加入<zgw:ZedGraphWeb ID="ZedGraphWeb1" runat="server" Width="300" Height="130" RenderMode="ImageTag"></zgw:ZedGraphWeb>  
  • 第五,在cs文件中添加引用: using ZedGraph;using ZedGraph.Web;using System.Drawing;//颜色
  • 第六,注册事件,this.ZedGraphWeb1.RenderGraph += new ZedGraph.Web.ZedGraphWebControlEventHandler(GetImage);//注册事件
  • 第七,写方法,private void GetImage(ZedGraphWeb zgw, Graphics g, MasterPane masterPane){}
  • 具体代码可以参考ZedGraph webform 初学小例子 (代码有详细解释)

一些经验

  • 传递数据的时候可以使用字典:IDictionary<int, int> dic; 
  • 一些属性设置
myPane.XAxis.Scale.FontSpec.Size  =   30 ; // 设置x轴的文字大小.
myPane.YAxis.Scale.FontSpec.Size  =   30 ; // 设置y轴的文字大小.
myPane.YAxis.MajorGrid.IsVisible  =   true ; // 设置虚线.
myPane.Chart.Border.IsVisible  =   false ; // 图表区域的边框设置.
myPane.Legend.IsVisible  =   false ; // 图表的注释标签显示设置项目.
  • 动态根据传入的数据显示的方法
复制代码
         ///   <summary>
        
///  曲线图.
        
///   </summary>
         public   void  CreateLineChart(GraphPane myPane, IDictionary < int int >  dic,  string  title,  string  xField,  string  yFields,  string  format)
        {
            myPane.XAxis.Scale.FontSpec.Size 
=   30 ; // 设置x轴的文字大小.
            myPane.YAxis.Scale.FontSpec.Size  =   30 ; // 设置y轴的文字大小.
            myPane.YAxis.MajorGrid.IsVisible  =   true ; // 设置虚线.
            myPane.Chart.Border.IsVisible  =   false ; // 图表区域的边框设置.
            myPane.Legend.IsVisible  =   false ; // 图表的注释标签显示设置项目.

            
int  rows  =  dic.Count;
            
double [] arrY  =   new   double [rows];
            
double [] arrX  =   new   double [rows];
            
string [] labels  =   new   string [rows];

            
int  i  =   0 ;
            
foreach  (KeyValuePair < int int >  kvp  in  dic)
            {
                arrX[i] 
=  Convert.ToDouble(kvp.Key);
                arrY[i] 
=  Convert.ToDouble(kvp.Value);
                labels[i] 
=  kvp.Key.ToString();
                i
++ ;
            }

            LineItem myCurve 
=  myPane.AddCurve(title, arrX, arrY, Color.Red, SymbolType.Square);
            myCurve.Symbol.Fill 
=   new  Fill(Color.Blue, Color.White, Color.Blue); // 填充这个蓝条,让这蓝条看起来有3D的效果
            myCurve.Line.Width  =   2 ;

            myPane.XAxis.Scale.TextLabels 
=  labels;  // X轴的说明文字
            myPane.XAxis.Type  =  AxisType.Text;
        }
复制代码
  • 小图的属性设置
            myPane.XAxis.Scale.FontSpec.Size  =   30 ; // 设置x轴的文字大小.
            myPane.YAxis.Scale.FontSpec.Size  =   30 ; // 设置y轴的文字大小.
            myPane.YAxis.MajorGrid.IsVisible  =   true ; // 设置虚线.
            myPane.Chart.Border.IsVisible  =   false ; // 图表区域的边框设置.
            myPane.Legend.IsVisible  =   false ; // 图表的注释标签显示设置项目.

  • 小图的属性设置刻度问题
            myPane.YAxis.Scale.Min  =   0 ; // 设置只显示正半轴.
            myPane.YAxis.Scale.MajorStep  =   1 ; // 设置刻度为1;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ZedGraph控件属性设置 ZedGraph是一个非常优秀的开源的作图控件 ZedGraph来源:http://sourceforge.net/project/showfiles.php?group_id=114675 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值