2012-01-25 6 views
1

TeeChartを使用して単一のTLineSeriesで複数の線を描くことは可能ですか?シリーズでグループ化するフィールドをデータセットに指定し、グループごとに1行ずつ描画します。または、これは不可能であり、表示すべきグループ/ラインごとにチャートをシリーズに追加する必要がありますか?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コンポーネントを使用して試みることができますグループとラベルのフィールドと数式(合計値またはカウント値)を使用します。あなたは、すべての機能 - >ようこそ!で例を見つけるでしょう! - >データベースチャート - > DBクロス集計ソースセクションの新機能デモが利用可能here

関連する問題