欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Winform中设置ZedGraph多条Y轴时坐标轴左右显示设置

程序员文章站 2022-05-15 10:31:08
场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100132245 在上面实现显示多条自定义Y轴的效果上,效果是左边一条Y轴,第二条在右边显示,然后第三条以及以后 ......

场景

winform中实现zedgraph的多条y轴(附源码下载):

https://blog.csdn.net/badao_liumang_qizhi/article/details/100132245

在上面实现显示多条自定义y轴的效果上,效果是左边一条y轴,第二条在右边显示,然后第三条以及以后都在左边显示。

上面实现的效果

Winform中设置ZedGraph多条Y轴时坐标轴左右显示设置

 

 

zedgraph的graphpane对象的自带yaxis和y2axis代表一左一右两个坐标轴对象。

默认显示左边的yaxis对象,右边的y2xis需要设置才能显示。

如果要继续添加,在左边则在yaxislist中添加,在右边则在y2axislist中添加。

注:

博客主页:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

右边显示坐标设置

//第二条y轴标题
mypane.y2axis.title.text = "第二条y轴标题";
//第二条y轴字体
mypane.y2axis.title.fontspec = myfont;
//让第二条y轴显示
mypane.y2axis.isvisible = true;
// 创建第三条y轴
yaxis yaxis3 = new yaxis("第三条y轴标题");
//添加到y轴的list
mypane.yaxislist.add(yaxis3);

如果想让坐标轴都显示在左边

// 设置第一条y轴
mypane = setyaxisstyle(mypane, ylist[0]);
//循环剩下的y轴
for (int i = 1; i < ylist.count; i++)
     {
        yaxis yaxisnew = new yaxis(ylist[i].title);
        mypane = setnewyaxisstyle(mypane, yaxisnew, ylist[i]);
      }

设置第一条y轴的方法

public static graphpane setyaxisstyle(graphpane mypane, yaxismodel yaxismodel)
        {
            mypane.yaxis.title.text = yaxismodel.title;
            mypane.yaxis.title.fontspec.fontcolor = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            mypane.yaxis.scale.min = yaxismodel.min;
            mypane.yaxis.scale.max = yaxismodel.max;       
            mypane.yaxis.scale.labelgap = 0f;
            mypane.yaxis.scale.align = alignp.outside;
            mypane.yaxis.scale.fontspec.size = global.font_size;
            mypane.yaxis.color = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            mypane.yaxis.title.fontspec.fontcolor = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            mypane.yaxis.scale.fontspec.fontcolor = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            mypane.yaxis.title.fontspec.size = global.font_size;
            mypane.yaxis.title.fontspec.family = global.font_family;
            mypane.yaxis.title.fontspec.isbold = true;
            mypane.yaxis.title.isvisible = false;               //隐藏y轴标题显示

            #region 刻度设置-小刻度

            mypane.yaxis.minorgrid.isvisible = false;          //隐藏小刻度网格线
            mypane.yaxis.minortic.isopposite = false;          //隐藏对面的刻度-小刻度
            mypane.yaxis.minortic.isinside = false;            //隐藏内测刻度线-小刻度
            mypane.yaxis.minortic.isoutside = true;            //显示外侧刻度线-小刻度
            mypane.yaxis.minortic.iscrossinside = false;       //隐藏内测交叉刻度线-小刻度
            mypane.yaxis.minortic.iscrossoutside = false;      //隐藏外侧交叉刻度线-小刻度

            #endregion

            #region 刻度设置-主刻度

            mypane.yaxis.majorgrid.isvisible = true;           //显示主刻度网格线
            mypane.yaxis.majorgrid.iszeroline = false;         //隐藏主刻度的0刻度线
            mypane.yaxis.majortic.isopposite = false;          //隐藏对面的刻度-主刻度
            mypane.yaxis.majortic.isinside = false;            //隐藏内测刻度线-主刻度
            mypane.yaxis.majortic.isoutside = true;            //显示外侧刻度线-主刻度
            mypane.yaxis.majortic.iscrossinside = false;       //隐藏内测交叉刻度线-主刻度
            mypane.yaxis.majortic.iscrossoutside = false;      //隐藏外侧交叉刻度线-主刻度

            #endregion
            return mypane;
        }

 

设置新增y轴的方法

public static graphpane setnewyaxisstyle(graphpane mypane, yaxis yaxis, yaxismodel yaxismodel)
        {
            yaxis.title.text = yaxismodel.title;
            yaxis.title.fontspec.fontcolor = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            yaxis.scale.min = yaxismodel.min;
            yaxis.scale.max = yaxismodel.max;          
            yaxis.scale.labelgap = 0.2f;
            yaxis.scale.align = alignp.outside;
            yaxis.scale.fontspec.fontcolor = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            yaxis.scale.fontspec.size = global.font_size;
            yaxis.scale.fontspec.fontcolor = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            yaxis.color = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            yaxis.title.fontspec.fontcolor = system.drawing.colortranslator.fromhtml(yaxismodel.color);
            yaxis.title.fontspec.size = global.font_size;
            yaxis.title.fontspec.family = global.font_family;
            yaxis.title.fontspec.isbold = true;
            yaxis.title.isvisible = false;              //隐藏y轴标题
            //yaxis.type = axistype.text;               //y轴不能设置此属性,应该以刻度值显示
            #region 刻度设置-小刻度

            yaxis.minorgrid.isvisible = false;          //隐藏小刻度网格线
            yaxis.minortic.isopposite = false;          //隐藏对面的刻度-小刻度
            yaxis.minortic.isinside = false;            //隐藏内测刻度线-小刻度
            yaxis.minortic.isoutside = true;            //显示外侧刻度线-小刻度
            yaxis.minortic.iscrossinside = false;       //隐藏内测交叉刻度线-小刻度
            yaxis.minortic.iscrossoutside = false;      //隐藏外侧交叉刻度线-小刻度

            #endregion

            #region 刻度设置-主刻度

            yaxis.majorgrid.isvisible = true;           //显示主刻度网格线
            yaxis.majorgrid.iszeroline = false;         //隐藏主刻度的0刻度线
            yaxis.majortic.isopposite = false;          //隐藏对面的刻度-主刻度
            yaxis.majortic.isinside = false;            //隐藏内测刻度线-主刻度
            yaxis.majortic.isoutside = true;            //显示外侧刻度线-主刻度
            yaxis.majortic.iscrossinside = false;       //隐藏内测交叉刻度线-主刻度
            yaxis.majortic.iscrossoutside = false;      //隐藏外侧交叉刻度线-主刻度

            #endregion

            //添加到y轴的list
            mypane.yaxislist.add(yaxis);
            return mypane;
        }

 

效果

Winform中设置ZedGraph多条Y轴时坐标轴左右显示设置

 

 

Winform中设置ZedGraph多条Y轴时坐标轴左右显示设置