TeeChart坐标轴常见问题记录

在使用 TeeChart 图表的过程中,经常会遇到坐标轴方面的问题。本文对TeeChart 坐标轴的相关问题进行了汇总:


1、如何实现TeeChart图表坐标轴的放大与缩小功能?


答:设置BottomAxis或者LeftAxis的Automatic:=false并同时设置Minimum,Maximum属性。


2、如果Teechart的横坐标是时间(日期),如何进行设置?


答:首先,你需要将X或者 Y坐标的日期时间DateTime属性设置为true:
LineSeries1.XValues.DateTime := True ;
其次,使用上面提到的方法,对日期,时间或则日期时间赋值:
LineSeries1.AddXY( EncodeDate( 1996 , 1 , 23 ) , 25.4 , 'Barcelona' , clGreen );


3、如何既固定TeeChart的坐标,又使坐标不跟随Series的变化而变化?


答:请参考以下代码:
//设置底座标
  with myChart.BottomAxis do
  begin
    Automatic:=false;
    Minimum:=0;
    LabelStyle := talText;
  end;
  //设置左坐标
  with myChart.LeftAxis do
  begin
    Automatic:=false;
    Minimum:=0;
    Title.Angle:=270;
    Title.Font:=Self.Font;
    Title.Font.Charset:=ANSI_CHARSET;
    Title.Font.Name:='@宋体';
    Grid.Visible := False;
  end;
  //设置右坐标
  with myChart.RightAxis do
  begin
    Automatic:=false;
    Title.Font:=Self.Font;
    Title.Font.Charset:=ANSI_CHARSET;
    Title.Font.Name:='@宋体';
    Title.Caption:='累计百分比(%)';
    Maximum:=100;
    Minimum:=0;
  end;
4、如何设置TeeChart图表横轴或者纵轴的增长率?

答:请参考以下代码:

Chart.BottomAxis.Increment := DataTimeStep[ dtOneHour ] ;
Chart.RightAxis.Increment := 1000;

5、如何对TeeChart自定义坐标轴进行放大缩小?


答:可通过 TeeChart的Zoom属性进行设置。


6、如何用代码将TeeChart的y轴分段?


答:请参考以下代码:

// change the Left axis properties
            Steema.TeeChart.Axis axis = this.tChart1.Axes.Left;
             
            axis.AxisPen.Color = Color.Red;
            axis.StartPosition = 0;
            axis.EndPosition = 32;
   
            // create custom axes. This can be done at design-time
            Green = new TeeChart.Axis(tChart1.Chart);
            this.tChart1.Axes.Custom.Add(Green);
            Green.AxisPen.Color = Color.Green;
            Green.StartPosition = 34;
            Green.EndPosition = 65;
 
            Blue = new TeeChart.Axis(tChart1.Chart);
            this.tChart1.Axes.Custom.Add(Blue);
            Blue.AxisPen.Color = Color.Blue;
            Blue.StartPosition = 67;   
            Blue.EndPosition = 100;

7、如何让TeeChart的X轴显示时间,Y轴显示随机数?


答:请参考以下代码:
void CTestTeeChartDlg::InitChart()
{ 
    m_ctrlChart.Series(0).Clear();
    m_ctrlChart.GetPage().SetMaxPointsPerPage(1440);
 
    COleDateTime CurTime = COleDateTime::GetCurrentTime();
    COleDateTime tempTime ;
    tempTime = CurTime; 
 
    CurTime.SetTime(0,0,0);
    CurTime.SetDate(tempTime.GetYear(),tempTime.GetMonth(),tempTime.GetDay());
    COleDateTimeSpan tmSpan = COleDateTimeSpan(0,0,1,0);
    CString csTime ;
    for(int i=0; i<80; i++) 
    {
        csTime = CurTime.Format("%H:%M");   
         
        float fzVal = float(GetRandom(12000,28000)/100); 
        m_ctrlChart.Series(0).AddXY(i,fzVal,csTime,i);
        CurTime += tmSpan;
    }
 
    m_ctrlChart.GetAxis().GetLeft().SetMinMax(100, 300);
}

8、设置TeeChart底部轴的最小值和最大值时,柱状图开始重叠?


答:请参考以下代码:


你可以改变BarWidthPercent来调整这些柱状。参考使用如下的代码:
private void InitializeChart()
        {
            tChart1.Aspect.View3D = false;
            tChart1.Axes.Bottom.Automatic = false;
            tChart1.Axes.Bottom.Minimum = 0;
            tChart1.Axes.Bottom.Maximum = 10;
            Steema.TeeChart.Styles.Bar bar = new Steema.TeeChart.Styles.Bar(tChart1.Chart);
            bar.Add(1, 1000);
            bar.Add(2, 1200);
            bar.Add(3, 900);
            bar.Add(4, 800);
            bar.BarWidthPercent = 25;
        }

9、如何让TeeChart的Y轴始终显示在X轴的0上?


答:通过调整Y轴的Position来实现,设置为50%,就可以让Y轴在X轴的0上。


10、Teechart的Y轴时间用空缺导致空白问题:


用barseries来显示条型图,其Y轴和X轴的值分别对应数据库里的一个浮点数值字段和一个日期字段,现在遇到一个问题,如果数据库里的日期少一天,图形显示出来就会有个空缺,很难看,比如2001-05-01接下来的数据只有2001-05-10的,中间就会缺一大段。把X轴设为非日期型虽然可以解决这个问题,但是GetCursorValues,XScreenTovalue,CalcPosPoint等函数计算出来的屏幕坐标到X轴的值就不对了。


答:解决这个问题的办法是不要用日期型,把原来是日期型的字段改成整型,比如2001-05-01就改成整型数20010501,他的图形自然就连续了.GetCursorValues取到的鼠标
数虽然不是已经转换好的数值,但是经过仔细观测,其实就是valueindex,只不过他很精确,是个浮点数而已,你只要这样就能得到x轴真正的值了:  
GetcursorValues(Tx,Ty);
Label1.Caption := GetVertAxis.LabelValue(tmpY);{Y轴的值}
label2.caption := Xlabel[round(Tx)];{X轴实际值}


原文地址:http://www.evget.com/zh-CN/Info/catalog/18181.html







  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值