首页 > 解决方案 > 在 TChart Lazarus 中添加值时如何使用 Label 而不是 Double

问题描述

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

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

如何在 Lazarus 中使用 TChart 做这样的事情?

标签: pascallazarus

解决方案


将 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;

推荐阅读