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添加数值的方法,这里给出一个相对可行的解决方案。

1

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
++;
     }
 

注意:

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

最后的效果图:

2
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值