Winform中设置ZedGraph的X轴的刻度根据曲线获取
生活随笔
收集整理的這篇文章主要介紹了
Winform中设置ZedGraph的X轴的刻度根据曲线获取
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
Winforn中設置ZedGraph曲線圖的屬性、坐標軸屬性、刻度屬性:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100112573
在對ZedGraph進行添加曲線時,需要對X軸的刻度進行賦值,需要一個string的數組。
并且在生成曲線時還要給曲線一個個坐標點的list。
如何在生成完曲線后直接從曲線中取得曲線的橫坐標作為X軸的賦值。
注:
博客主頁:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
循環添加曲線
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;}#endregionelse{//曲線賦值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軸文本取值效果
?
總結
以上是生活随笔為你收集整理的Winform中设置ZedGraph的X轴的刻度根据曲线获取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中在定义事件委托时怎样跨窗体传递参数
- 下一篇: C#中巧用Lambda进行数据的筛选查询