winforn中设置zedgraph曲线图的属性、坐标轴属性、刻度属性:
https://blog.csdn.net/badao_liumang_qizhi/article/details/100112573
在对zedgraph进行添加曲线时,需要对x轴的刻度进行赋值,需要一个string的数组。
并且在生成曲线时还要给曲线一个个坐标点的list。
如何在生成完曲线后直接从曲线中取得曲线的横坐标作为x轴的赋值。
注:
博客主页:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
循环添加曲线
pointpairlist list = null; for (int i = 0; i < ylist.count; i++) { //循环添加曲线 foreach(datatreenode node in global.instance.preparecomparedatainone) { ienumerable<entity.record> record = global.instance.virtualdata.recorddatalist.where(p => p.cycleindex == int.parse(node.id)); list = setcurvetextinone(ylist[i].titlekey,record); lineitem mycurve = mypane.addcurve(ylist[i].title, list, system.drawing.colortranslator.fromhtml(ylist[i].color), symboltype.none); mycurve.yaxisindex = i; //很关键,对应使用那个坐标值 } }
给曲线赋值
public static pointpairlist setcurvetextinone(string yaxis,ienumerable<entity.record> record) { pointpairlist list = new pointpairlist(); #region 数据验证 if (record == null) { return list; } #endregion else { //曲线赋值 int maxctn = 0; //最大点数 double y = 0.0; int x =1; list<entity.record> recordlist = new list<entity.record>(); foreach (entity.record re in record) { maxctn++; recordlist.add(re); } func<entity.record, object> getyvalue = basehelper.emitgetter<entity.record>(yaxis); for (int k = 0; k < recordlist.count; k++) { if (basehelper.isexistsproperty<entity.record>(yaxis)) { object objy = getyvalue(recordlist[k]); if (objy != null) { double.tryparse(objy.tostring(), out y); } } list.add(x, y, k+1); //添加一组数据(k:x数据点的索引,y:y的值,xtag:x的实际值) x++; } return list; } }
x轴的刻度值在曲线中获取
mypane.xaxis.scale.textlabels = list.select<pointpair, string>(p => p.x.tostring()).toarray<string>(); //x轴文本取值
如对本文有疑问, 点击进行留言回复!!
使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)
C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析
网友评论