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

How to use Label instead of Double when adding a value in TChart Lazarus

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

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

如何在 Lazarus 中使用 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;