tChart X轴时间显示以及Y轴自动范围

使用tChart有一段时间了,一直想用X轴显示时间,查了很多资料才实现,下面是具体步骤。


//初始化设置

//设置X轴为时间坐标
			this->tChart1->Dock = DockStyle::Fill;
			this->tChart1->Aspect->View3D = false;								//取消3D
			this->tChart1->Axes->Left->Automatic = false;						//取消Y轴自动范围
			this->tChart1->Axes->Left->AutomaticMaximum = false;
			this->tChart1->Axes->Left->AutomaticMinimum = false;
			this->tChart1->Axes->Bottom->Labels->DateTimeFormat = "HH:mm:ss";	//X轴时间显示格式
			this->tChart1->Chart->Series[0]->XValues->DateTime = true;			//X轴时间显示开启

//写入数据点,设置Y轴范围

//写入数据
				this->tChart1->Chart->Series[0]->Add(this->dt.ToOADate(), ftemp);

				
				//获取最大值与最小值的差,用于将Y轴设置为最大值大一点,最小值小一点的范围,防止最大值与最小值看不见(100就是比例)
				ftemp = this->tChart1->Chart->Series[0]->YValues->Maximum - this->tChart1->Chart->Series[0]->YValues->Minimum;
				this->tChart1->Axes->Left->Maximum = this->tChart1->Chart->Series[0]->YValues->Maximum+ftemp / 100;
				this->tChart1->Axes->Left->Minimum = this->tChart1->Chart->Series[0]->YValues->Minimum-ftemp / 100;

//固定X轴点数,点数达到了就删除最前面的一个点

this->CollCnt++;	//采集点数增加
			if (this->CollCnt > 10)
			{
				this->tChart1->Chart->Series[0]->Delete(0);
			}


//最终效果图片



要在 Delphi 中使用 TChart 显示数据,您需要执行以下步骤: 1. 在 Delphi IDE 中创建一个新的 VCL 应用程序。 2. 添加一个 TChart 控件。您可以在“工具箱”中找到 TChart 控件,并将其拖动到您的窗体上。 3. 在代码中创建一个数据源。例如,您可以使用 TClientDataSet 组件。 4. 将数据源连接到 TChart 控件。通过双击 TChart 控件来打开其编辑器。在编辑器中,选择“Series”选项卡并单击“Add”按钮。选择您要显示的图表类型(例如,线图或柱状图)并单击“OK”。然后,选择您的数据源并设置 X 和 Y 的字段。 5. 在代码中打开数据源并填充数据。例如,使用 TDataSetProvider 和 TClientDataSet 组件来从数据库中检索数据。 6. 运行应用程序并查看 TChart 控件中显示的图表。 下面是一个简单的示例代码,演示如何在 Delphi 中使用 TChart 显示数据: ```delphi unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBClient, Provider, Series, TeEngine, TeeProcs, Chart; type TForm1 = class(TForm) Chart1: TChart; Chart1LineSeries1: TLineSeries; ClientDataSet1: TClientDataSet; DataSetProvider1: TDataSetProvider; DataSource1: TDataSource; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin // 添加数据 ClientDataSet1.FieldDefs.Add('X', ftInteger); ClientDataSet1.FieldDefs.Add('Y', ftInteger); ClientDataSet1.CreateDataSet; for i := 1 to 10 do begin ClientDataSet1.Append; ClientDataSet1.FieldByName('X').AsInteger := i; ClientDataSet1.FieldByName('Y').AsInteger := Random(100); ClientDataSet1.Post; end; // 设置图表 Chart1LineSeries1.DataSource := DataSource1; Chart1LineSeries1.XLabelsSource := 'X'; Chart1LineSeries1.YValues.ValueSource := 'Y'; Chart1LineSeries1.RefreshSeries; end; end. ``` 在这个例子中,我们创建了一个简单的数据源,填充了一些随机数据,并将其连接到 TChart 控件的 TLineSeries 上。在 FormCreate 事件中,我们将数据源连接到 TChart 控件并设置 X 和 Y 的字段。然后,我们刷新了 TLineSeries,以便在图表中显示数据。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cp1300

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值