uses
TAChartAxis, TAChartAxisUtils, TALegend;
procedure TForm1.Button1Click(Sender: TObject);
const
LEFT_COLOR = clRed;
RIGHT_COLOR = clBlue;
var
leftAxis, rightAxis: TChartAxis;
t: TAutoscaleAxisTransform;
leftSeries, rightSeries: TLineSeries;
i: Integer;
begin
// Left axis
// it is already creates, but we set some properties
leftAxis := Chart1.LeftAxis;
leftAxis.Marks.LabelFont.Color := LEFT_COLOR;
leftAxis.Title.Font.Color := LEFT_COLOR;
leftAxis.Title.Caption := 'Left axis';
leftAxis.Title.Visible := true;
leftAxis.AxisPen.Color := LEFT_COLOR;
leftAxis.AxisPen.Visible := true;
leftAxis.TickColor := LEFT_COLOR;
// AxisTransformation for left axis
Chart1.LeftAxis.Transformations := TChartAxisTransformations.Create(self);
t := TAutoscaleAxisTransform.Create(Chart1.LeftAxis.Transformations);
t.Transformations := Chart1.LeftAxis.Transformations;
t.Minvalue := 0;
t.MaxValue := 0.5;
// Right axis
rightAxis := Chart1.AxisList.Add;
rightAxis.Alignment := calRight;
rightAxis.Title.Caption := 'Right axis';
rightAxis.Title.Visible := true;
rightAxis.Grid.Visible := false;
rightAxis.Marks.LabelFont.Color := RIGHT_COLOR;
rightAxis.Title.Font.Color := RIGHT_COLOR;
rightAxis.Title.Font.Orientation := -900; // in 1/10 degrees
rightAxis.AxisPen.Color := RIGHT_COLOR;
rightAxis.AxisPen.Visible := true;
rightAxis.TickColor := RIGHT_COLOR;
// Axis transformation for right axis
rightAxis.Transformations := TChartAxisTransformations.Create(self);
t := TAutoscaleAxisTransform.Create(rightAxis.Transformations);
t.MinValue := 0.5;
t.MaxValue := 1.0;
t.Transformations := rightAxis.Transformations;
// Series for left axis
leftSeries := TLineSeries.Create(Chart1);
leftSeries.SeriesColor := LEFT_COLOR;
leftSeries.Title := 'red (left)';
leftSeries.AxisIndexY := Chart1.LeftAxis.Index;
for i:=0 to 10 do leftSeries.AddXY(i, random);
Chart1.AddSeries(leftSeries);
// series for right axis
rightSeries := TLineSeries.Create(Chart1);
rightSeries.SeriesColor := RIGHT_COLOR;
rightSeries.Title := 'blue (right)';
rightSeries.AxisIndexY := rightAxis.Index;
for i:=5 to 20 do rightSeries.AddXY(i, random*10);
Chart1.AddSeries(rightSeries);
// second series for right axis
rightSeries := TLineSeries.Create(Chart1);
rightSeries.SeriesColor := RIGHT_COLOR;
rightSeries.LinePen.Style := psDot;
rightSeries.Title := 'blue dotted (right)';
rightSeries.AxisIndexY := rightAxis.Index;
for i:=3 to 15 do rightSeries.AddXY(i, random*12 + 5);
Chart1.AddSeries(rightSeries);
// Show legend
Chart1.Legend.Visible := true;
Chart1.Legend.Alignment := laBottomCenter;
Chart1.Legend.ColumnCount := 3;
end;