我的previous question有一些很好的意见,但它对我不起作用,因为我的问题似乎与 Delphi 7 相关。
我有一个包含单个系列 (TFastLineSeries) 和 3,600 个数据点的图表,绘制最多需要 45 秒。其他人说它应该快如闪电,所以谁能帮忙,记住我正在使用 Delphi 7 和标准 TChart 组件。
我怀疑我应该先准备数据,然后一次性添加所有数据,而不是调用 AddXY() 3,600 次。
<小时/>更新:在 D7 中,AddXy() 函数签名为 function AddXY(Const AXValue, AYValue: Double; Const AXLabel: String; AColor: TColor) : Longint;其中
timeLabel是表示 MM:SS 的字符串。但我应该传递什么值(value)
我用 `Chart1.Series[0].AddXY(Chart1.Series[0].Count, codValue, timeLabel, clRed
<小时/>顺便说一句,我已经编码了 Chart1.Series[0].XValues.DateTime := True; Chart1.BottomAxis.DateTimeFormat := 'nn:ss';//'hh' 或 'nn' 或 'ss' 如您所愿,例如Chart1.BottomAxis.DateTimeFormat:="dd/mm/yyyy hh:mm";
最佳答案
也许您生成要放入图表中的值的方式是瓶颈?
在 Delphi 2010 上,我测量了以下代码,耗时不到 1/10 秒:
var
I: Integer;
begin
for I := 0 to 3000 - 1 do
Series1.AddXY(Random(1000), Random(100));
关于delphi - 优化 Delphi 7 中的 TChart 绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4782560/