堆叠图未按日期堆叠成单个条形图
Stacked Chart not stacking into a single bar by date
我有一个数据集,其中 returns 数据如下
日期、地区、销售额
2017-06-01 00:00:00.000食堂435.29
2017-06-01 00:00:00.000 健身房 26
2017-06-01 00:00:00.000钉75
2017-06-01 00:00:00.000 未分类 482.5
我正在尝试使用此数据创建堆积条形图
系列数会有所不同
我有以下创建系列的逻辑,但我不确定如何添加每个值,例如我需要 X 轴按日期显示并且有 2 个柱。然后根据上述数据,每个条形图堆叠 3 个系列。
while not tblSalesBreakdownByDate.Eof do
begin
nIndex := objList.IndexOf(tblSalesBreakdownByDateCategory.AsString);
if nIndex = -1 then
begin
objSeries := TBarSeries.Create(Self);
objSeries.MultiBar := TMultiBar.mbStacked;
objSeries.Title := tblSalesBreakdownByDateCategory.AsString;
chrtBreakdownByDate.AddSeries(objSeries);
objList.AddObject(objSeries.Title, objSeries)
end
else
objSeries := objList.Objects[nIndex];
objSeries.Add(tblSalesBreakdownByDateTotalSales.AsFloat, tblSalesBreakdownByDateTransactionDate.AsString);
tblSalesBreakdownByDate.Next;
end;
渲染时,我得到的不是堆叠的 1 个条,而是 3 个条
如何在 1 个栏中为日期堆叠这个?
Axis 有什么特别需要我做的吗?
干杯
保罗
这给了我一个堆叠的列:
uses Series;
procedure TForm1.FormCreate(Sender: TObject);
begin
with Chart1.AddSeries(TBarSeries) as TBarSeries do
begin
MultiBar:=mbStacked;
Marks.Hide;
Title:='Canteen';
Add(435, '2017-06-01');
end;
with Chart1.AddSeries(TBarSeries) as TBarSeries do
begin
MultiBar:=mbStacked;
Marks.Hide;
Title:='Gym';
Add(25, '2017-06-01');
end;
with Chart1.AddSeries(TBarSeries) as TBarSeries do
begin
MultiBar:=mbStacked;
Marks.Hide;
Title:='Nails';
Add(95, '2017-06-01');
end;
with Chart1.AddSeries(TBarSeries) as TBarSeries do
begin
MultiBar:=mbStacked;
Marks.Hide;
Title:='Uncategorized';
Add(455, '2017-06-01');
end;
end;
我有一个数据集,其中 returns 数据如下
日期、地区、销售额
2017-06-01 00:00:00.000食堂435.29
2017-06-01 00:00:00.000 健身房 26
2017-06-01 00:00:00.000钉75
2017-06-01 00:00:00.000 未分类 482.5
我正在尝试使用此数据创建堆积条形图
系列数会有所不同
我有以下创建系列的逻辑,但我不确定如何添加每个值,例如我需要 X 轴按日期显示并且有 2 个柱。然后根据上述数据,每个条形图堆叠 3 个系列。
while not tblSalesBreakdownByDate.Eof do
begin
nIndex := objList.IndexOf(tblSalesBreakdownByDateCategory.AsString);
if nIndex = -1 then
begin
objSeries := TBarSeries.Create(Self);
objSeries.MultiBar := TMultiBar.mbStacked;
objSeries.Title := tblSalesBreakdownByDateCategory.AsString;
chrtBreakdownByDate.AddSeries(objSeries);
objList.AddObject(objSeries.Title, objSeries)
end
else
objSeries := objList.Objects[nIndex];
objSeries.Add(tblSalesBreakdownByDateTotalSales.AsFloat, tblSalesBreakdownByDateTransactionDate.AsString);
tblSalesBreakdownByDate.Next;
end;
渲染时,我得到的不是堆叠的 1 个条,而是 3 个条
如何在 1 个栏中为日期堆叠这个?
Axis 有什么特别需要我做的吗?
干杯
保罗
这给了我一个堆叠的列:
uses Series;
procedure TForm1.FormCreate(Sender: TObject);
begin
with Chart1.AddSeries(TBarSeries) as TBarSeries do
begin
MultiBar:=mbStacked;
Marks.Hide;
Title:='Canteen';
Add(435, '2017-06-01');
end;
with Chart1.AddSeries(TBarSeries) as TBarSeries do
begin
MultiBar:=mbStacked;
Marks.Hide;
Title:='Gym';
Add(25, '2017-06-01');
end;
with Chart1.AddSeries(TBarSeries) as TBarSeries do
begin
MultiBar:=mbStacked;
Marks.Hide;
Title:='Nails';
Add(95, '2017-06-01');
end;
with Chart1.AddSeries(TBarSeries) as TBarSeries do
begin
MultiBar:=mbStacked;
Marks.Hide;
Title:='Uncategorized';
Add(455, '2017-06-01');
end;
end;