在TChart Lazarus中添加值时如何使用Label而不是Double

问题描述

使用TChart组件时,假设添加一个条形图,如何使用标签而不是Double来更改x轴的值?

目前,我只能在带有两个数字的条形系列中使用addXY。 是否可以添加(Apple,1000),(Orange,400),(Banana,10)? 目前,我只是使用索引并将水果名称添加标签。我想将标签放在条形上而不是在x轴上。

如何在拉撒路使用TChart进行此类操作?

解决方法

将BarSeries的ListSource分配给BottomAxis的Marks.Source,并将Marks.Style设置为smsLabel。只能在运行时完成,并且“ smsLabel”在“ uses”子句中需要使用单位TAChartUtils。

uses
  TAChartUtils;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Chart1Barseries1.AddXY(1,1000,'Apple');
  Chart1BarSeries1.AddXY(2,400,'Orange');
  Chart1BarSeries1.AddXY(3,10,'Banana');
  Chart1.BottomAxis.Marks.Source := Chart1BarSeries1.listSource;  // <---
  Chart1.BottomAxis.Marks.Style := smsLabel;                      // <---
end;