gpt4 book ai didi

delphi - TeeChart通过给定X值获取系列Y值或索引

转载 作者:行者123 更新时间:2023-12-03 19:50:04 25 4
gpt4 key购买 nike

我有以下问题:我正在将Delphi XE3与TeeChart配合使用,我想通过给定的X值检索Y值或意甲的值索引。我的意向是一个在X轴上带有日期的时间序列。我知道图表上的日期,我想显示与此日期最接近的对应Y值。

TChart或TChartSeries组件是否有任何方法或功能可以实现此目的?还是我需要遍历系列直到到达选定的日期?

无法使用CursorPostion方法,因为光标可能在任何地方。

在此先感谢您的帮助。

最佳答案

您可以使用LocateTChartValueList方法获取相应数据条目的索引。

帮助示例:

tmp:=LineSeries1.XValues.Locate(EncodeDate(2007,1,1));
if tmp<>-1 then ...


编辑:此方法适用于确切的巧合。

如果对X值进行了排序(默认模式),则可以在XValues中使用二进制搜索来快速找到最接近的值。
例如,您可以修改 this code以返回最接近的值索引而不是 -1,或者对两个相邻值使用线性插值(如果适用)。

  //assumes A.Order = loAscending (default)
function FindClosestIndex(const Value: Double; A: TChartValueList): Integer;
var
ahigh, j, alow: integer;
begin
// extra cases
if A.Count = 0 then
Exit(-1);
if Value <= A.First then
Exit(0);
if Value >= A.Last then
Exit(A.Count - 1);

// binary search
alow := 0;
ahigh := A.Count - 1;
while ahigh - alow > 1 do begin
j := (ahigh + alow) div 2;
if Value <= A[j] then
ahigh := j
else
alow := j;
end;

// choose the closest from ahigh, alow
Result := ahigh - Ord(A[ahigh] - Value >= Value - A[alow])
end;

关于delphi - TeeChart通过给定X值获取系列Y值或索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37179985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com