用戶希望在一條曲線上,根據數據點自定義每個點的顏色(如溫度梯度色)。TeeChart 內建系列預設「一系列一顏色」,不直接支援逐點著色。
每個數據點建立一個 TPointSeries,設定其 SeriesColor。缺點:點數多時系列數爆炸,性能極差,圖例管理混亂。
OnGetSeriesMark 僅控制標記顏色,不控制線段。OnAfterDraw 事件中手動繪製每段線條:Canvas.Pen.Color := ...; Canvas.Line(...);。針對「逐點顏色」這類高度客製化需求,自繪控件反而更簡潔:
// 伪代码:WM_PAINT 中
for i = 0 to Count-2 do
begin
Color := InterpolateColor(Value[i], Value[i+1]);
Pen.Color := Color;
Canvas.MoveTo(X[i], Y[i]);
Canvas.LineTo(X[i+1], Y[i+1]);
end;
TeeChart 非為「單序列多顏色」設計,強行實現維護成本高。自繪或專用視覺化庫是更理性的選擇。