zed graph使用经验

article/2025/10/6 21:58:08

转自:http://www.cnblogs.com/gaizai/archive/2010/02/22/1671154.html

ZedGraph使用经验

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

ZedGraph资源

  • ZedGraph来源:http://sourceforge.net/project/showfiles.php?group_id=114675
  • ZedGraph相关例子资源:http://zedgraph.org/wiki/index.php?title=Sample_Graphs 

 

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;
  • 属性分布图,From Arbean.Wu

 

 

 

相关资料

  1. http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot-gt.aspx
  2. http://zedgraph.org/wiki/index.php?title=Sample_Graphs
  3. 波浪线图:http://zedgraph.org/wiki/index.php?title=Dual-Y_Demo
  4. RenderMode.ImageTag例子:http://zedgraph.org/wiki/index.php?title=Use_RenderMode.ImageTag_in_a_web_page
    RenderMode.RawImage例子:http://zedgraph.org/wiki/index.php?title=Use_RenderMode.RawImage_in_a_web_page
  5. ZedGraph webform 初学小例子 (代码有详细解释)

    ZedGraph属性

    一个简单例子
  6. 开源图表控件ZedGraph控件的研究(1)
  7. ZedGraph属性\方法介绍

http://chatgpt.dhexx.cn/article/iOQ0QYOB.shtml

相关文章

ZedGraph

ZedGraph使用经验 2010-02-22 14:28 by 听风吹雨, 8194 阅读, 3 评论, 收藏, 编辑 开源的统计图控件中基本常用的是OpenFlashChar和ZedGraph&#xff0c;今天就先来讲讲ZedGraph的使用。 ZedGraph资源 ZedGraph来源&#xff1a;http://sourceforge.net/project/showfiles.php…

zedGraph 绘制实时曲线 卡顿

zedGraph是一个开源的曲线绘制插件&#xff0c;由于要制作上位机显示实时数据&#xff0c;百度搜索到了zedgraph&#xff0c;优点是开源&#xff0c;功能也够使用。 缺点是看网址08年后就没有更新过。尝试使用了一下&#xff0c;感觉还可以。 曲线绘制直接看下图。 原理很简单…

ZedGraph 官网下载和帮助文档ZedGraph.chm

ZedGraph介绍 ZedGraph是用C#编写的.NET的类库控件&#xff0c;可用于绘制曲线图、饼图、柱状图、股票K线图等&#xff0c;功能非常强大。 1、ZedGraph的官网是&#xff1a; https://sourceforge.net/projects/zedgraph/ 2、ZedGraph.CHM帮助文档 官网的链接&#xff1a; htt…

graphviz简介

前几天去杨瑞那儿玩&#xff0c;他向我介绍了一个叫graphviz的工具&#xff0c;回来之后试用了一下&#xff0c;觉得真的是很好很强大。下面简单的介绍一下这个工具。 graphviz是贝尔实验室设计的一个开源的画图工具&#xff0c;它的强大主要体现在“所思即所得"&#xff…

zedgraph控件使用

最近做一个上位机的项目&#xff0c;要求实时显示温度曲线&#xff0c;开始用.net自带的 chart控做的&#xff0c;在动态显示那块&#xff0c;在删除一个数据点、加入一个新的数据点的时候&#xff0c;新的数据点显示不出来&#xff1b;纠结好久&#xff0c;解决不了这个问题。…

ZedGraph控件常用方法和属性总结

最近在WPF使用ZedGraph控件&#xff0c;发现这个控件的功能很强大&#xff0c;据说采用了双缓冲机制来绘制图&#xff0c;只要控制好显示的帧速&#xff0c;能够显示速度较快的动态图。 参考&#xff1a;https://blog.csdn.net/qq_26093511/article/details/51329059 1、常用…

ZedGraph设置刻度轴的颜色、刻度文本颜色以及网格线的颜色

1 刻度轴的设置 本小节介绍 如何设置刻度的颜色、长度、生长方向以及将正上方的刻度隐藏掉&#xff0c;还有设置刻度文本的颜色Scale.FontSpec.FontColor。 Color axisColor Color.FromArgb(150, 150, 150);#region X轴//设置主刻度的长度this.zedGraph.GraphPane.XAxis.Majo…

ZedGraph 总论

ZedGraph 总论 ZedGraph 是一个开源的.NET图表类库&#xff0c; 并且全部代码都是用C#开发的。它可以利用任意的数据集合创建2D的线性和柱形图表。 ZedGraph的类库具有很高的灵活性。几乎图表的每个层面都可以被用户修改。同时&#xff0c;为了保证类库的易用性&#xff0c;所…

ZedGraph做统计

下载ZedGraph.dll,在工具箱添加 &#xff0c;然后将空间拖入界面&#xff0c;&#xff0c; ZedGraph.dll下载地址 &#xff1a; http://download.csdn.net/detail/happy09li/4276410 参考资料 点击打开链接 private void Form9_Load(object sender, EventArgs e){DataTable …

ZedGraph使用(一) 柱形图

ZedGraph使用&#xff08;一&#xff09; 柱形图 作者&#xff1a;Kevin 日期&#xff1a; 2008-12-04 QQ:475762235 关键字&#xff1a;ZedGraph、柱形图、统计图、C#、绘图、绘图控件、WebFrom 内容摘要&#xff1a; ZedGraph是一个开源的控件&#xff0c;提供了用户控件和…

ZedGraph绘图

一、下载及配置 下载ZedGraph 官网下载地址 http://sourceforge.net/projects/zedgraph/files/ 添加 ZedGraph.dll 和ZedGraph.Web.dll的引用 在控件库中添加ZedGraph控件 右键点击工具箱 - 选择项 - .Net Framework 组件 - 浏览 - 找到ZedGraph.dll 和ZedGraph.Web.d…

ZedGraph类库之基本教程篇

第一部分&#xff1a;基本教程篇 ZedGraphDemo中一共有9个基本教程的例子。其中大部分都类似&#xff0c;我会讲解其中一些比较典型的例子。把ZedGraph类库的使用逐步展现给大家。 第一节&#xff1a; InitialSampleDemo.cs这个文件 http://blog.csdn.net/tjvictor/archive/20…

ZedGraph使用经验

ZedGraph资源 ZedGraph来源&#xff1a;http://sourceforge.net/project/showfiles.php?group_id114675 ZedGraph 相关例子资源&#xff1a;http://zedgraph.org/wiki/index.php?titleSample_Graphs ZedGraph的特点&#xff1a; 第一&#xff0c;可以先生成图片后再显示&…

C#zegraph用法

一、引用using ZedGraph; 在资源管理器中点击引用&#xff0c;将ZedGraph.dll添加到工程项目中。 二、添加zedGraphControl控件 在工具箱的常规项目右击添加选择项&#xff0c;浏览zedgraph.dll 二、基本图、直方图、折线图、圆饼图 三、zedgraph相关属性 classDescrip…

ZedGraph 绘制动态曲线

文章目录 前言&#xff1a;开发环境&#xff1a;1 下载ZedGraph 控件并设置图形界面2 功能实现3 需求升级4 小结 话不多数&#xff0c;先上一个效果图&#xff1a; 前言&#xff1a; 需要采集一些设备的数据以图表的形式展示出来&#xff0c;研究数据的走向是否平稳&#xff0…

ZedGraph如何显示鼠标附近的曲线的点?介绍三种方法

使用ZedGraph绘制曲线图的时候&#xff0c;不仅仅是看曲线的走向&#xff0c;也需要查看曲线上某位位置处采集到的数据是多少。下面介绍三种方法&#xff0c;从简单到复杂。 文章目录 1、使用自带的功能显示点的坐标2、 多条曲线的坐标点同时显示3、 多条曲线的坐标点同时显示…

开源框架ZedGraph的使用

.Net的绘图控件ZedGraph的使用 ZedGraph 是一个开源的.NET图表类库&#xff0c; 全部代码都是用C#开发的。它可以利用任意的数据集合创建2D的线性和柱形图表 我们一般不直接使用ZedGraphControl对象&#xff0c;而是使用它的面板对象来进行操作&#xff0c;这里我们将它的面板…

redis解决高并发问题,如商品秒杀

redis真的是一个很好的技术&#xff0c;它可以很好的在一定程度上解决网站一瞬间的并发量&#xff0c;例如商品抢购秒杀等活动。。。 redis之所以能解决高并发的原因是它可以直接访问内存&#xff0c;而以往我们用的是数据库(硬盘),提高了访问效率,解决了数据库服务器压力。 …

Redis的高并发场景解决方案

1.Redis的信息 &#xff08;1&#xff09;单线程容易实现。 &#xff08;2&#xff09;效率高轻松处理每秒几十万数据&#xff08;因为是占内存的所以CPU不是瓶颈&#xff09;。 &#xff08;3&#xff09;支持数据类型多&#xff08;String&#xff0c;List&#xff0c;has…

java如何解决高并发问题_java怎么处理高并发?

java处理高并发的方法:1、优化代码,减少不必要的资源浪费;2、把图片与页面进行分离,将图片放到独立的图片服器;3、使用缓存,可以大量减少与数据库的交互,提高性能;4、使用数据库集群;5、进行DB优化;6、硬件上做到负载均衡等等。 java处理高并发的方法: 1、从最基础的…