pascal - 在 TChart Lazarus 中添加值时如何使用 Label 而不是 Double
问题描述
使用 TChart 组件时,假设添加一个条形系列,如何使用标签而不是 Double 来更改 x 轴的值?
目前我只能在条形系列中使用 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;
推荐阅读
- javascript - 如何在 JS 中对二进制图像进行 base64 编码以供浏览器显示
- websocket - Stompclient/ SockJs - 通过 1-1 代理通道多次接收消息
- javascript - 在 svelte 中使用后退按钮事件监听器
- c# - 如何在 WinForms 中显示/隐藏对象
- python - 如何检查 Python 字典中是否存在定义和键
- php - 从 mysql 获取数据到电子邮件的问题
- javascript - 如何在对象键中分配变量值?
- scala - Scala序列组通过枚举详尽
- fuzzy-search - 比较数百万个感知哈希
- c# - 如何在 resx 文件中写入换行符 \n?