TeeChart坐标轴常见问题记录
来源:互联网 发布:java培训哪里好 编辑:程序博客网 时间:2024/04/27 22:52
在使用 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的变化而变化?
答:请参考以下代码:
7、如何让TeeChart的X轴显示时间,Y轴显示随机数?
答:请参考以下代码:
8、设置TeeChart底部轴的最小值和最大值时,柱状图开始重叠?
答:请参考以下代码:
你可以改变BarWidthPercent来调整这些柱状。参考使用如下的代码:
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轴实际值}
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
- TeeChart坐标轴常见问题记录
- TeeChart自定义坐标轴
- 分享几个TeeChart的常见问题
- TeeChart Pro .Net 教程----教程4 - 坐标轴控件
- 关于VS2013中使用TeeChart获取坐标轴的问题
- teechart
- teechart
- 常见问题记录
- 常见问题记录
- 坐标轴
- 坐标轴
- java下使用TeeChart生成图表的学习记录
- symfony常见问题记录
- PC常见问题记录
- 初学S60,常见问题记录
- python常见问题记录
- windows常见问题记录
- java常见问题记录
- 再看ADO对象模型
- Chrome和android SDK远程调试移动端页面,报device not found 错误解决方法
- HDFS的架构要点
- 项目中那些事|控件之TextView
- delete和delete[]区别
- TeeChart坐标轴常见问题记录
- ios NSConditionLock 解释
- 5家机器学习的创业公司
- Javascript 继承
- 炎炎夏日,给你一次极爽的开发体验!——统一开发环境功能升级优化,正式上线V2.0!
- java中关于File类的相关操作
- jvm 内存整理 -----学习
- inflate第三个参数
- 使用_swprintf_s造成stack was corrucpted