TeeChart TLineSeries - можно ли нарисовать несколько линий на серию? - PullRequest
1 голос
/ 25 января 2012

Можно ли нарисовать несколько линий с помощью одного TLineSeries, используя TeeChart? Я хотел бы указать поле в наборе данных, по которому должен группироваться ряд, рисуя одну линию на группу. Или это невозможно, и для каждой группы / линии, которая должна отображаться, необходимо добавить серию в диаграмму?

Ответы [ 2 ]

3 голосов
/ 26 января 2012

Вы можете добиться этого, установив 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 Alonso

Центральная служба поддержки Steema

1 голос
/ 06 февраля 2012

Вы также можете попробовать использовать компонент DBCrosstabSource, который подключается к любому набору данных и автоматически создает серии из данных базы данных, используя поля и метки группы и формулы (значения суммы или числа).Вы найдете примеры в All Features -> Welcome!-> Графики базы данных -> Исходный раздел DB Crosstab в демонстрационной версии новых функций здесь .

...