如何使用delphi中的teechart从数据集中执行堆积条形图

前端之家收集整理的这篇文章主要介绍了如何使用delphi中的teechart从数据集中执行堆积条形图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可以使用TeeChart在Delphi中创建堆叠条形图.这是使用循环中添加的值和系列.我更喜欢通过使用查询作为数据源来创建此图表,而不必将每个条形图添加为循环内的单独系列.有没有更好的方法来做到这一点,或者我应该关注的其他类型的图表?该数据是来自井核样本的岩石类型的横截面.数据集包含每个深度和岩石类型测量的记录.它显示为岩石类型的单个垂直列,就像核心样本一样.
+----+
|    | record 1 - depth1,rock type 1
|    |
+----+
|    |
|    |
|    | record 2 - depth2,rock type 2
|    |
+----+
|    | record 3 - depth3,rock type 3
+----+


procedure TForm128.GenerateLithologyChart;
var
  LSeries: TBarSeries;
  i : integer;
  LastBot : double;

  procedure AddRockSeries(depth : double; col : TColor);
  begin
    LSeries := TBarSeries.Create(LithologyChart);
    LithologyChart.AddSeries(LSeries);
    LSeries.AddBar(0,'',clBlue);
    if col=clNone then
      LSeries.AddNullXY(0,depth,'')
    else
      LSeries.AddXY(0,col);
    LSeries.Marks.Visible := False;
    LSeries.MultiBar := mbStacked;
    LSeries.CustomBarWidth := 80;
  end;

begin
  LithologyChart.LeftAxis.Inverted := True;
  LithologyChart.Title.Text.Text := 'Well Lithology - data-aware test';
  LithologyChart.SeriesList.Clear;
  AdoQuery1.First;
  i := 0;
  LastBot := 0;
  while not AdoQuery1.Eof do begin
    if abs(AdoQuery1.FieldByName('Strata Top').asFloat-LastBot) > 0.0005 then begin
      // create blank cross section for the missing depth range
      AddRockSeries(AdoQuery1.FieldByName('Strata Top').asFloat-LastBot,clNone);
    end;
    AddRockSeries(AdoQuery1.FieldByName('Strata Bottom').asFloat-AdoQuery1.FieldByName('Strata Top').asFloat,clRed);

    LastBot := AdoQuery1.FieldByName('Strata Bottom').asFloat;
    inc(i);
    //if i = 3 then break;

    AdoQuery1.Next;
  end;
  AdoQuery1.First;
end;

解决方法

尝试为TBarSeries使用mbSelfStack MultiBar样式.这是一个例子:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Chart1.View3D:=false;
  with Chart1.AddSeries(TBarSeries) as TBarSeries do
  begin
    Marks.Visible:=false;
    MultiBar:=mbSelfStack;
    FillSampleValues;
  end;
end;

使用此样式,单个TBarSeries中的值将堆叠在一起

原文链接:https://www.f2er.com/delphi/453117.html

猜你在找的Delphi相关文章