【发布时间】:2012-01-25 11:56:41
【问题描述】:
是否可以使用 TeeChart 用单个 TLineSeries 绘制多条线?我想在数据集中指定该系列应分组的字段,每组绘制一条线。或者这是不可能的,应该为应该显示的每个组/行在图表中添加一个系列?
【问题讨论】:
-
XY 系列当然有可能,但我对此表示怀疑。您大概希望共享每条线的 X 轴?
-
是的,它们将共享相同的 X 轴。
是否可以使用 TeeChart 用单个 TLineSeries 绘制多条线?我想在数据集中指定该系列应分组的字段,每组绘制一条线。或者这是不可能的,应该为应该显示的每个组/行在图表中添加一个系列?
【问题讨论】:
您可以将 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 支持中心
【讨论】:
您还可以尝试使用 DBCrosstabSource 组件,该组件连接到任何数据集,并使用 Group 和 Label 字段和公式(总和或计数值)从数据库数据自动创建系列。您可以在所有功能 -> 欢迎! -> 数据库图表 -> 新功能演示中的数据库交叉表源部分可用here。
【讨论】: