• ZedGraph控件的使用属性和例子代码


    ZedGraph控件的使用

    在我们编写程序的时候,有时候是要做一些统计的,为了达到一目了然的效果,饼状图,曲线图,柱状图都是很好的表现统计的直观形式。这个时候,ZedGraph控件给我们带来了极大的方便。

    1.下载ZedGraph.dll

    2.在项目中引用这个控件 (: 首先,在项目解决方案里添加,然后在工具箱中点击右键,选择项,COM,浏览,打开,我们就 会在工具箱的最下方发现这个控件了,确定。然后就可以在一个WINFORM中直接加入这个控件(在FORM上就出现了了图 了),具体的统计数据我们是在其添加X,Y坐标时候处理的。如:

    double Y=(double)(Convert.ToDouble(tem1[i]));
    double X=(double)i;
    temlist.Add(X,Y);
    //这里,是已经定义了GraphPane,PointPairList

    gridview结合Zedgraph使用用法
    http://www.cnblogs.com/levin9/articles/859476.html

    ZedGraph类库介绍
    http://blog.csdn.net/tjvictor/category/257827.aspx

    介绍和简单的操作手册:http://www.codeproject.com/csharp/zedgraph.asp
    代码例子:http://zedgraph.org/wiki/index.php?title=Sample_Graphs
    整体介绍:http://zedgraph.org/wiki/index.php?title=Main_Page
    操作手册(官网):http://zedgraph.org/wiki/index.php?title=How_Do_I%3F
    中文网站:(这个不好,是在线翻译过来的,看着比较累)
    http://202.165.104.75/babelfish/translate_url_content?lp=en_zh&trurl=http%3a%2f%2fzedgraph.org%2fwiki

    还有这个,使用帮助:http://www.codeproject.com/KB/graphics/zedgraph.aspx

    附:在vs中使用ZedGraph控件的一些记录(转)

    几个注意点:

    图片的保存路径设置: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次幂指数

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

            //---------------------------------------------------代码-------------------------------------------------------------

            /// <summary>
            /// 得到统计数据
            /// </summary>
            private double[] getData(string queryDate, int baseStationId, int faultType)
            {
                double[] d=_objWebService.GetFaultNum(queryDate, baseStationId, faultType);
                return d;
            }
            #region 折线图
            /// <summary>
            /// 故障统计折线图
            /// </summary>
            /// <param name="zg1"></param>
            /// <param name="queryDate"></param>
            /// <param name="baseStationId"></param>
            /// <param name="faultType"></param>
            private void CreateGraph1(ZedGraphControl zg1, string queryDate, int baseStationId, int faultType)
            {
                GraphPane myPane = zg1.GraphPane;
                //清空绘制区
                myPane.CurveList.Clear();
                myPane.GraphObjList.Clear();

                myPane.Title.Text = "故障统计折线图";
                myPane.XAxis.Title.Text = "年份";
                myPane.YAxis.Title.Text = "故障次数";
                myPane.XAxis.IsVisible = true;
                myPane.YAxis.IsVisible = true;
                //myPane.XAxis.Type = ZedGraph.AxisType.Linear;

                string[] labels = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" };
                double[] y = this.getData(queryDate, baseStationId, faultType);

                LineItem myCurve = myPane.AddCurve(null, null, y, Color.Red, SymbolType.Diamond);
                myCurve.Line.Fill = new Fill(Color.White, Color.LightSkyBlue, -45F);

                myPane.XAxis.Scale.TextLabels = labels;
                myPane.XAxis.Type = AxisType.Text;
                myPane.YAxis.Scale.MajorStep = 10;
                myPane.YAxis.Scale.Max = 100;
                myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 90F);
                myPane.Fill = new Fill(Color.FromArgb(250, 250, 255));
                zg1.AxisChange();
                zg1.Refresh();
            }
            #endregion

            #region 柱状图
            /// <summary>
            /// 柱状图
            /// </summary>
            /// <param name="zg1"></param>
            /// <param name="queryDate"></param>
            /// <param name="baseStationId"></param>
            /// <param name="faultType"></param>
            private void CreateGraph2(ZedGraphControl zg1, string queryDate, int baseStationId, int faultType)
            {
                GraphPane myPane = zg1.GraphPane;
                //清空绘制区
                myPane.CurveList.Clear();
                myPane.GraphObjList.Clear();

                myPane.Title.Text = "故障统计柱状图";
                myPane.XAxis.Title.Text = "年份";
                myPane.YAxis.Title.Text = "故障次数";
                myPane.XAxis.IsVisible = true;
                myPane.YAxis.IsVisible = true;
                //myPane.XAxis.Type = ZedGraph.AxisType.Linear;

                string[] labels = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" };
                double[] y = this.getData(queryDate, baseStationId, faultType);

                BarItem myBar = myPane.AddBar(null, null, y, Color.Red);
                myBar.Bar.Fill = new Fill(Color.Red, Color.White, Color.Red);

                //myPane.XAxis.MajorTic.IsBetweenLabels = true;

                myPane.XAxis.Scale.TextLabels = labels;
                myPane.XAxis.Type = AxisType.Text;
                myPane.YAxis.Scale.MajorStep = 10;
                myPane.YAxis.Scale.Max = 100;
                myPane.Chart.Fill = new Fill(Color.White,Color.FromArgb(255, 255, 166), 90F);
                myPane.Fill = new Fill(Color.FromArgb(250, 250, 255));
                zg1.AxisChange();
                zg1.Refresh();
            }

            #endregion


            #region 饼状图
            private List<Color> defaultColors = new List<Color>();

            private void InitDefaultColors()
            {
                defaultColors.Add(Color.Red);
                defaultColors.Add(Color.Green);
                defaultColors.Add(Color.Blue);
                defaultColors.Add(Color.Yellow);
                defaultColors.Add(Color.YellowGreen);
                defaultColors.Add(Color.Brown);
                defaultColors.Add(Color.Aqua);
                defaultColors.Add(Color.SaddleBrown);
                defaultColors.Add(Color.DarkSeaGreen);
                defaultColors.Add(Color.Indigo);
                defaultColors.Add(Color.SlateBlue);
                defaultColors.Add(Color.SeaShell);
            }

            /// <summary>
            /// pie graph
            /// </summary>
            /// <param name="zg1"></param>
            /// <param name="queryDate"></param>
            /// <param name="baseStationId"></param>
            /// <param name="faultType"></param>
            private void CreateGraph3(ZedGraphControl zg1, string queryDate, int baseStationId, int faultType)
            {
                InitDefaultColors();

                GraphPane myPane = zg1.GraphPane;
                //清空绘制区
                myPane.CurveList.Clear();
                myPane.GraphObjList.Clear();

                myPane.Title.Text = "故障统计饼图";
                myPane.XAxis.IsVisible = false;
                myPane.YAxis.IsVisible = false;
                myPane.Fill = new Fill(Color.Cornsilk);
                myPane.Chart.Fill = new Fill(Color.Cornsilk);
                myPane.Legend.Position = LegendPos.Right;

                string[] labels = { "1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月" };
                double[] y = this.getData(queryDate, baseStationId, faultType);

                for (int i = 0; i < labels.Length; i++)
                {
                    PieItem segment = myPane.AddPieSlice(y[i], defaultColors[i], Color.White, 45f, 0, labels[i]);
                    segment.LabelType = PieLabelType.Name_Percent;
                }
                zg1.AxisChange();
                zg1.Refresh();
            }
            #endregion

  • 相关阅读:
    微前端开发常见问题汇总
    什么是UUId?理解UUId的五个版本和使用
    前端实现.md文件转换成.html文件
    使用HTML5 SVG 标签
    小程序开发中遇到的问题
    Django REST framework+Vue 打造生鲜超市(十一)
    Django REST framework+Vue 打造生鲜超市(十)
    Django REST framework+Vue 打造生鲜超市(九)
    Django REST framework+Vue 打造生鲜超市(八)
    Django REST framework+Vue 打造生鲜超市(七)
  • 原文地址:https://www.cnblogs.com/lcxu2/p/2004048.html
Copyright © 2020-2023  润新知