在C#中如果设置zedgraph中图形的
1.横、纵坐标的范围,如果x轴(0,10),y坐标范围(0,100),并且不可变;
2.实时显示数据时,图中只显示最新的100个点,最早的点自动去掉,
3.或者用下面的滚动条也可以,但是窗口中一直显示最新的100个点

解决方案 »

  1.   

    一个实时曲线的例子,看是否能帮到你~
    public partial class FrmMain : Form
    {
    // 起始时间以毫秒为单位
    int tickStart = 0; public FrmMain()
    {
    InitializeComponent();
    } private void Form1_Load( object sender, EventArgs e )
    {
    //获取引用
    GraphPane myPane = zedGraphControl1.GraphPane;
    //设置标题
    myPane.Title.Text = "实时曲线";
    //设置X轴说明文字
    myPane.XAxis.Title.Text = "时间";
    //设置Y轴说明文字
    myPane.YAxis.Title.Text = "温度"; //设置1200个点,假设每50毫秒更新一次,刚好检测1分钟,一旦构造后将不能更改这个值
    RollingPointPairList list = new RollingPointPairList( 1200 ); //开始,增加的线是没有数据点的(也就是list为空)
    //增加一条名称:Voltage,颜色Color.Bule,无符号,无数据的空线条
    LineItem curve = myPane.AddCurve("温度", list, Color.Blue, SymbolType.None); timeDraw.Interval = 10; //设置timer控件的间隔为50毫秒
    timeDraw.Enabled = true; //timer可用
    timeDraw.Start(); //开始 myPane.XAxis.Scale.Min = 0; //X轴最小值0
    myPane.XAxis.Scale.Max = 30; //X轴最大30
    myPane.XAxis.Scale.MinorStep = 1;//X轴小步长1,也就是小间隔
    myPane.XAxis.Scale.MajorStep = 5;//X轴大步长为5,也就是显示文字的大间隔 //改变轴的刻度
    zedGraphControl1.AxisChange(); //保存开始时间
    tickStart = Environment.TickCount;
    } private void timer1_Tick( object sender, EventArgs e )
    {
    //确保CurveList不为空
    if (zedGraphControl1.GraphPane.CurveList.Count <= 0)
    {
    return; 
    } //取Graph第一个曲线,也就是第一步:在GraphPane.CurveList集合中查找CurveItem
    LineItem curve = zedGraphControl1.GraphPane.CurveList[0] as LineItem;
    if (curve == null)
    {
    return;
    } //第二步:在CurveItem中访问PointPairList(或者其它的IPointList),根据自己的需要增加新数据或修改已存在的数据
    IPointListEdit list = curve.Points as IPointListEdit; if (list == null)
    {
    return;
    } // 时间用秒表示
    double time = ( Environment.TickCount - tickStart ) / 1000.0;
    // 3秒循环
    list.Add( time, Math.Sin( 2.0 * Math.PI * time / 3.0 ) ); Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale;
    if ( time > xScale.Max - xScale.MajorStep )
    {
    xScale.Max = time + xScale.MajorStep;
    xScale.Min = xScale.Max - 30.0;
    } //第三步:调用ZedGraphControl.AxisChange()方法更新X和Y轴的范围
    zedGraphControl1.AxisChange(); //第四步:调用Form.Invalidate()方法更新图表
    zedGraphControl1.Invalidate();
    } private void Form1_Resize( object sender, EventArgs e )
    {
    SetSize();
    } private void SetSize()
    {
    // 控制始终是以10像素插入矩形从客户端的形
    Rectangle formRect = this.ClientRectangle;
    formRect.Inflate( -10, -10 ); if ( zedGraphControl1.Size != formRect.Size )
    {
    zedGraphControl1.Location = formRect.Location;
    zedGraphControl1.Size = formRect.Size;
    }
    }
      

  2.   

    ZedGraph的一些基本一些概念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,另一个输出的是乱码不是图片
       
    对于图表而言,一般是三种表现形式:柱状图、饼状图和点线图。
    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次幂指数 IsZeroLine 
    当数据为0时候是否显示(在饼状图显示的时候有用) IsVisible 
    是否显示  X  轴 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  轴) BarBase 
    在生成柱状图的时候设置柱状是基于  X  轴还是其他轴 BarType 
    柱状的类型叠加或其他。 IsFontsScaled 
    图比例变化时候图表上的文字是否跟着自动缩放 IsIgnoreInitial 
    是否忽略初始值 IsIgnoreMissing 
    是否忽略缺省值 IsPenWidthScaled 
    图比例变化时候图表上的画笔的粗细是否跟着自动缩放 IsShowTitle 
    图表标题是否显示 PaneFill 
    Pane  的一些填充信息 BaseDimension 
    缩放比例基数(可以试试效果) IsImageMap 
    不清楚干吗用的 AxisChaneged 
    是否允许自动绘图(没试过,一般都  true,动态绘图) CacheDuration 
    Cache  保存时间0 OutputFormat 
    输出格式 RenderedImagePath 
    输出路径 RenderMode 
    输出模式,不太清楚一般都是  ImageTag,另一个输出的是乱码不是图片。对于图表而言,一般是三种表现形式:柱状图、饼状图和点线图。 
      

  3.   

    感谢楼上各位的回答,我用的zedGraph版本是5.15,里面没有zedGraphControl1.GraphPane.XAxis.Scale.Max------scale下面没有max这个选项,不知道为什么,是不是这个版本没有这个了?请用过的高手给指点下,谢谢