Teechart: концевые метки на логарифмической оси x - PullRequest
0 голосов
/ 15 февраля 2019

Если у меня есть логарифмическая ось x со значением от 10 до 400, она отображает 10 и 100, но я также хочу, чтобы она отображала конечное значение 400.

Другая проблема заключается в том, что значения идут от 11до 400, метка отображается только на 100. Здесь я хочу отобразить 11, 100 и 400.

Кто-нибудь знает, какое свойство оси / метки установить для этого?

1 Ответ

0 голосов
/ 05 апреля 2019

Чтобы нарисовать такие метки, вы должны использовать пользовательские метки.
Я предполагаю, что вы используете TeeChart VCL, и я покажу код в Delphi, но он будет похож на TeeChart .NET, TeeChart ActiveX или TeeChart Java.

Если у меня есть логарифмическая ось X со значением от 10 до 400, она отображает 10 и 100, но я также хочу, чтобы она отображала конечное значение 400.

Вы можете сделать это следующим образом:

uses Series, Math;

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  Chart1.View3D:=False;
  Chart1.Legend.Hide;
  Chart1.Walls.Hide;
  Chart1.Gradient.Visible:=False;
  Chart1.Color:=clWhite;
  Chart1.Axes.Bottom.Logarithmic:=True;

  with Chart1.AddSeries(TFastLineSeries) as TFastLineSeries do
  begin
    for i:=10 to 400 do
      AddXY(i, sin(i/100));
  end;

  with Chart1.Axes.Bottom.Items do
  begin
    Clear;
    Add(10, '10');
    Add(100, '100');
    Add(400, '400');
  end;
end;

first

Другая проблема заключается в том, что если значения идут от 11 до 400, отображается только меткана 100. Здесь я хочу отобразить 11, 100 и 400.

Вы можете сделать это следующим образом:

uses Series, Math;

procedure TForm1.FormCreate(Sender: TObject);
var i: Integer;
begin
  Chart1.View3D:=False;
  Chart1.Legend.Hide;
  Chart1.Walls.Hide;
  Chart1.Gradient.Visible:=False;
  Chart1.Color:=clWhite;
  Chart1.Axes.Bottom.Logarithmic:=True;

  with Chart1.AddSeries(TFastLineSeries) as TFastLineSeries do
  begin
    for i:=11 to 400 do
      AddXY(i, sin(i/100));
  end;

  with Chart1.Axes.Bottom.Items do
  begin
    Clear;
    Add(11, '11');
    Add(100, '100');
    Add(400, '400');
  end;
end;

second

...