无法推断 TeeChart 趋势函数

发布于 2024-10-19 01:38:56 字数 409 浏览 1 评论 0原文

我使用 teechart 和 delphi 来绘制一个系列以及该系列的趋势线,使用以下代码:

TF:= TTrendFunction.Create(self);
TrendSeries.SetFunction(TF);
TrendSeries.DataSource := OrigSeries;
TrendSeries.CheckDataSource;

它工作正常,但我想知道是否可以让趋势线向前或向后推断?在应用函数进行推断后,我似乎找不到一种方法来检索该系列的 x 和 y 值。我尝试使用CalculateTrend函数来计算y = mx + b中的“m”和“b”,但它给出了访问冲突,与我尝试访问series.YValue[i]时相同。

那么有没有办法在应用趋势函数后检索它绘制的那些点呢?

谢谢。

I'm using teechart with delphi to plot a series and the trend line for that series using the following code:

TF:= TTrendFunction.Create(self);
TrendSeries.SetFunction(TF);
TrendSeries.DataSource := OrigSeries;
TrendSeries.CheckDataSource;

It works fine, but I was wondering if it's possible to have the trend line extrapolate forwards or backwards? I can't seem to find a way to retrieve x and y values of the series after it applies the function to extrapolate. I tried using the CalculateTrend function to calculate the 'm' and 'b' in y = mx + b, but it gave an access violation for that, same as when I try to access the series.YValue[i].

So is there even a way to retrieve those points it plots after applying the trend function?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拥抱没勇气 2024-10-26 01:38:56

Trend 函数向 TrendSeries 添加 2 个点。
点 0 位于 OrigSeries 的 X 最小值处,点 1 位于 X 最大值处。

要扩展 TrendSeries,例如向前扩展,请更改点索引 1:

procedure TForm1.Button1Click(Sender: TObject);

var 
  y, m, b: Double;

begin

  TF.CalculateTrend(m, b, OrigSeries, 0, OrigSeries.Count-1);
  TrendSeries.XValue[1]:=OrigSeries.Count+10;   // Extend last point by 10
  y:=m* (OrigSeries.Count+10) +b;
  TrendSeries.YValues[1]:=y;
end;

The Trend function adds 2 points to TrendSeries.
Point 0 is at X minimum of OrigSeries, and point 1 is at X maximum.

To extend the TrendSeries, for example forward, change the point index 1:

procedure TForm1.Button1Click(Sender: TObject);

var 
  y, m, b: Double;

begin

  TF.CalculateTrend(m, b, OrigSeries, 0, OrigSeries.Count-1);
  TrendSeries.XValue[1]:=OrigSeries.Count+10;   // Extend last point by 10
  y:=m* (OrigSeries.Count+10) +b;
  TrendSeries.YValues[1]:=y;
end;
踏雪无痕 2024-10-26 01:38:56

趋势线基于系列中的原始数据,因此,要推断趋势线,您必须向原始系列提供更多数据。

The trend line is based on the original data in the series, therefore, to extrapolate the trend line, you must provide more data to the original series.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文