delphi利用数据库数据绘制曲线图

delphi利用数据库数据绘制曲线图,第1张

采用tdbchart控件

procedure TForm1.Button1Click(Sender: Object)

var

LS: TLineSeries

begin

LS := TLineSeries.Create(DBChart1)//这里假设你用的是DBChart1

LS.ParentChart := DBChart1

LS.Title := '标题'

LS.DataSource := Adoquery1//这里假设你用的adoquery1作为dataset

LS.XLabelsSource := '你横坐标要显示的字段名称'

LS.YValues.ValueSource := ‘纵坐标的字段名称'//必须是数值型

end

假如数据库里

有电压曲线

例如 1点钟是 20V

1点15 是 21V

1点30 是 25V

2点是50V

设置Y坐标为范围为 1-24 定义为小时

那就按时间取出来 1换算成

那画的曲线就是 (因为1天就是1 所以乘以24 刚好对应小时)

iPlot1.Channel[0].AddXY(StrtoDateTime('1:00:00')*24,20)

iPlot1.Channel[0].AddXY(StrtoDateTime('1:15:00')*24,21)

iPlot1.Channel[0].AddXY(StrtoDateTime('1:30:00')*24,25)

iPlot1.Channel[0].AddXY(StrtoDateTime('2:00:00')*24,50)

这个是最简单使用

得query之类的查询出数据 然后一个个加上数值

没有dbgrid那么方便 不过也许有简单方法 但我不了解

var

xx:Variant

yy:Variant

begin

xx := VarArrayCreate([1,4], varVariant)

yy := VarArrayCreate([1,4], varVariant)

xx[1]:=StrtoDateTime('1:00:00')*24

xx[2]:=StrtoDateTime('1:15:00')*24

xx[3]:=StrtoDateTime('1:30:00')*24

xx[4]:=StrtoDateTime('2:00:00')*24

yy[1]:=2

yy[2]:=9

yy[3]:=16

yy[4]:=20

iPlot1.Channel[0].AddXYArrays(xx,yy)

在Delphi中要通过曲线的x轴取y轴的值,可以使用Interpolate函数来实现。Interpolate函数接收多个参数,第一个参数是要查询的x轴坐标值,剩下的参数依次是x轴坐标对应的y轴坐标值,最后返回查询到的y轴坐标值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9935446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存