2012-01-25 55 views
1

使用TeeChart可以用單個TLineSeries繪製多條線嗎?我想在數據集中指定一個字段,這個字段應該按照每組繪製一行。或者這是不可能的,並且應該爲應該顯示的每個組/行添加一系列圖表?TeeChart TLineSeries - 是否可以爲每個系列繪製多行?

+1

這對XY系列來說當然是可行的,但我懷疑它。你大概希望分享每一行的X軸? –

+0

是的,他們會共享相同的X軸。 – Adam

回答

3

您可以實現它將XValues.Order設置爲loNone,並在每次要開始新行時添加一個空點。但是,爲了加快繪圖和點處理速度,TFastLineSeries對所有點使用相同的顏色(SeriesColor)。如果你想爲不同的顏色使用不同的顏色,你應該使用TLineSeries。

uses Series; 

procedure TForm1.FormCreate(Sender: TObject); 
var i, j: Integer; 
begin 
    Chart1.View3D:=false; 
    Chart1.Legend.Visible:=false; 

    with Chart1.AddSeries(TFastLineSeries) as TFastLineSeries do 
    begin 
    XValues.Order:=loNone; 
    TreatNulls:=tnDontPaint; 
    for i:=0 to 4 do 
    begin 
     if i>0 then AddNullXY(0,0); //start a new line 

     AddXY(0,Random*1000); 
     for j:=1 to 24 do 
     AddXY(j, Chart1[0].YValue[Chart1[0].Count-1] + random*10 - 5); 
    end; 
    end; 
end; 

無論如何,我不明白爲什麼人們想要做到上述而不是創建幾個TFastLine系列。

-

最好的問候,

Yeray阿隆索

Steema支持中心

+0

謝謝你的回答。我很好奇,看看TLineSeries是否有一個內置函數來處理分隔行中的值分組。由於沒有,我必須自己循環訪問數據集。所以我同意,沒有理由使用這種方法而不是添加多個系列。 – Adam

1

您也可以嘗試使用它連接到任何數據集,並自動從數據庫中的數據創建系列DBCrosstabSource組件,使用組和標籤字段和公式(總和或計數值)。您可以在所有功能 - >歡迎光臨中找到示例。 - >數據庫圖表 - >數據庫交叉表源代碼部分中的新功能演示可用here

相關問題