欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

ZedGraph给LineChart添加数值

发布时间:2025/4/5 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 ZedGraph给LineChart添加数值 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

作为支持.net的强大的开源图表控件ZedGraph,最新版本是

New Update as of 28-Nov-2007 Version 5.1.4 + 4.6.4 

官方主页:http://zedgraph.org/

SOURCEFORG主页:http://zedgraph.sourceforge.net/

5.x的是支持.net2.0的,4.x的是支持.net1.1的,由于个人原因,这里使用的版本为5.1.1的,方法大同小异。

 

由于是开源,很多代码可以从sample中找到,但是例子中没有LineChart的添加数值的方法。通过参考例子中给BarChart添加数值的方法,这里给出一个相对可行的解决方案。

ZedGraph中所有的元素都是以GDI+的技术画上去的,实际上我们要做的事情就是建立几个TextObject添加到图表中去,在这之前还要找到每个点所在的位置 。

实际做法也很简单,在

masterPane.AxisChange(g);

后面加一些代码:

 

int ord = 0;
     
foreach (CurveItem mycurve in myPane.CurveList)
     
{
         LineItem line 
= curve as LineItem; 

         
if (line != null)
         
{
             IPointList points 
= mycurve.Points; 

             
for (int i = 0; i < points.Count; i++)
             
{
                 
double xVal = points[i].X;
                 
double yVal = points[i].Y; 

                 
string lab = yVal.ToString("0.00"+ "%"

                 TextObj text 
= new TextObj(lab, (float)xVal , (float)yVal*1.01); 

                 text.Location.CoordinateFrame 
= CoordType.AxisXYScale;
                 text.FontSpec.Size 
= 10;

                 text.Location.AlignH 
= AlignH.Center ;
                 text.Location.AlignV 
= AlignV.Bottom;
                 text.FontSpec.Border.IsVisible 
= false;

                 text.FontSpec.Angle 
= 0;
                 text.FontSpec.Fill.IsVisible 
= false;

                 myPane.GraphObjList.Add(text);
             }

         }
 

         ord
++;
     }
 

注意:

  • 在ZedGraph早期的版本中TextObj的名称为TextItem
  • 画图的masterPane.AxisChange(g);语句在早期版本中为base.ZedGraphControl.AxisChange();
  • curve.Points在现在的版本类型为IPointList ,早期为PointPairList
  • 本代码中(float)yVal*1.01是为是产生一个向上的偏移,由于不知道Y轴的具体高度,如果用强位移的话会因Y轴刻度过短而达不到偏移效果。
  • 最后的效果图:

    转载于:https://www.cnblogs.com/fhmsha/archive/2007/12/24/1012523.html

    总结

    以上是生活随笔为你收集整理的ZedGraph给LineChart添加数值的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。