我的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; where
timeLabel is a string representing MM:SS. But what value should I be passing for
我用`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”;
答案 0 :(得分:1)
也许您生成放入图表的值的方式是瓶颈?
在Delphi 2010上,我测量了以下代码,不到1/10秒:
var
I: Integer;
begin
for I := 0 to 3000 - 1 do
Series1.AddXY(Random(1000), Random(100));
答案 1 :(得分:1)
顺便说一下:它还可以加快绘图速度,在添加值之前将Chart1.AutoRepaint设置为false,然后将if设置为true
答案 2 :(得分:1)
这可能会帮助您从TeeChart的开发者.... Fast line drawing with TeeChart