TeeChart VCL/Delphi 双轴使用求助:求Delphi实现代码示例
Delphi下TeeChart绑定数据系列到第二Y轴的实现示例
核心说明
ChatGPT给出的代码错误在于混淆了TChart和TChartSeries的属性:TChart本身没有VerticalAxis属性,每个数据系列(如TLineSeries、TBarSeries等)才拥有该属性,用于指定当前系列绑定的Y轴。
完整代码示例
以下是在Delphi中实现双Y轴绑定的完整代码,以TLineSeries为例:
procedure TForm1.FormCreate(Sender: TObject); var SeriesMain, SeriesSub: TLineSeries; begin // 清空Chart默认系列 Chart1.ClearSeries; // ===== 创建并配置主系列(绑定左Y轴)===== SeriesMain := TLineSeries.Create(Self); SeriesMain.ParentChart := Chart1; SeriesMain.Title := '主数据系列'; // 添加示例数据 SeriesMain.AddXY(1, 8); SeriesMain.AddXY(2, 12); SeriesMain.AddXY(3, 10); SeriesMain.AddXY(4, 15); // 主系列默认绑定左Y轴,无需额外设置 // ===== 创建并配置副系列(绑定右Y轴)===== SeriesSub := TLineSeries.Create(Self); SeriesSub.ParentChart := Chart1; SeriesSub.Title := '副数据系列'; // 添加与主系列数值范围差异较大的示例数据,便于观察双轴效果 SeriesSub.AddXY(1, 80); SeriesSub.AddXY(2, 120); SeriesSub.AddXY(3, 100); SeriesSub.AddXY(4, 150); // 启用右侧Y轴并绑定副系列 Chart1.Axes.Right.Visible := True; // 确保右侧轴可见 SeriesSub.VerticalAxis := vaRight; // 将副系列绑定到右侧Y轴 // ===== 可选:优化轴的显示样式 ===== Chart1.Axes.Left.Title.Caption := '主轴数值'; Chart1.Axes.Left.Title.Font.Color := SeriesMain.Color; Chart1.Axes.Right.Title.Caption := '副轴数值'; Chart1.Axes.Right.Title.Font.Color := SeriesSub.Color; Chart1.Legend.Visible := True; // 显示图例区分系列 end;
多额外Y轴的扩展方案
如果需要3个及以上Y轴,可通过创建自定义轴实现:
var CustomYAxis: TChartAxis; begin // 创建自定义垂直轴 CustomYAxis := Chart1.Axes.AddCustomAxis(True); // True表示创建垂直轴 CustomYAxis.Visible := True; CustomYAxis.Position := axRight; // 设置轴显示在右侧 CustomYAxis.Title.Caption := '自定义轴数值'; // 将指定系列绑定到自定义轴 SeriesSub.VerticalAxisCustom := CustomYAxis; end;
内容的提问来源于stack exchange,提问作者bicou
相关产品推荐
相关产品推荐

