【问题标题】:TeeChart TLineSeries - Is it possible to draw multiple lines per series?TeeChart TLineSeries - 每个系列是否可以绘制多条线?
【发布时间】:2012-01-25 11:56:41
【问题描述】:

是否可以使用 TeeChart 用单个 TLineSeries 绘制多条线?我想在数据集中指定该系列应分组的字段,每组绘制一条线。或者这是不可能的,应该为应该显示的每个组/行在图表中添加一个系列?

【问题讨论】:

  • XY 系列当然有可能,但我对此表示怀疑。您大概希望共享每条线的 X 轴?
  • 是的,它们将共享相同的 X 轴。

标签: delphi delphi-xe teechart


【解决方案1】:

您可以将 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 系列。

--

最好的问候,

耶雷阿隆索

Steema 支持中心

【讨论】:

  • 感谢您的回答。我很想知道 TLineSeries 是否有一个内置函数可以处理将值分组到单独的行中。因为没有,我将不得不自己遍历数据集。所以我同意,没有理由使用这种方法而不是添加多个系列。
【解决方案2】:

您还可以尝试使用 DBCrosstabSource 组件,该组件连接到任何数据集,并使用 Group 和 Label 字段和公式(总和或计数值)从数据库数据自动创建系列。您可以在所有功能 -> 欢迎! -> 数据库图表 -> 新功能演示中的数据库交叉表源部分可用here

【讨论】:

    猜你喜欢
    • 2013-07-29
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 2021-08-28
    相关资源
    最近更新 更多