Sorry, ich habe nicht ordentlich gelesen und dachte du wolltest nur die Achsenbeschriftung, nicht die tatsächlichen Positionen der Achsenmarkierungen anpassen.
Man scheint das einmal mit dem
OnGetNextAxisLabel
-Event machen zu können, ich durchschaue das aber ehrlich gesagt selbst nicht so wirklich.
Die andere Möglichkeit wäre, einfach alle
Items
deiner Achse zu nehmen die größer als dein Schwellwert sind und die weiter nach rechts zu rücken:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
shiftAfterPosition = 4.0;
shiftByValue = 0.2;
var
axis: TChartAxis;
itemIndex: Integer;
itemValue: Double;
begin
axis := Chart1.Axes.Bottom;
for itemIndex := Pred(axis.Items.Count) downto 0 do
if (axis.Items[itemIndex].Value > shiftAfterPosition) then begin
itemValue := axis.Items[itemIndex].Value;
axis.Items.Remove( axis.Items[itemIndex] );
itemValue := itemValue + shiftByValue;
axis.Items.Add( itemValue, axis.LabelValue(itemValue) );
end;
end;