• ZedGrapy使用实例


    
    
        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;
                }
            }
    
    
    
            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;
                    }
                }
                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.

    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,另一个输出的是乱码不是图片。对于图表而言,一般是三种表现形式:柱状图、饼状图和点线图。

  • 相关阅读:
    Js获取当前日期时间及其它操作
    Java JDBC 基础知识
    java自动创建多级目录
    [Java]读取文件方法大全
    table固定首行(二)
    table固定首行(一)
    DIV滚动条
    查看本机开放的端口号,查看某个端口号是否被占用,查看被占用的端口号被哪个进程所占用,如何结束该进程
    DWZ SSH2 菜单树--使用Struts2 标签(iterator/set/if 组合使用)
    synchronized与lock,哪个效率更高
  • 原文地址:https://www.cnblogs.com/laojie4321/p/2473041.html
Copyright © 2020-2023  润新知