Помощь - Поиск - Пользователи - Календарь
Полная версия: TChart, метки по осям
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
*kitty*
Здравствуйте! Строю график по точкам в TChart вот так:

var t: array[1..10] of  real;

procedure TForm1.Button1Click(Sender: TObject);
var x,i: integer;
begin
   t[1]:=0.375;
   t[2]:=0.75;
   t[3]:=1.875;
   t[4]:=4.25;
   t[5]:=16.375;
   t[6]:=56.125;
   t[7]:=350.625;
   t[8]:=1943;
   t[9]:=24000.5;
   t[10]:=409353;
   Series1.Clear;
   x:=8;
   for i:=1 to 10 do
   begin
    Series1.AddXY(x,t[i],'',clRed);
    x:=x*2;
   end;
end;

Автоматические метки по осям не устраивают. Нужно чтобы отображались только координаты точек (x, t[i]). С осью Х (BottomAxis) решила проблему просто через редактирование Edit Chart, поставив в свойствах оси Bottom - вкладка Labels - Style - Mark, предварительно установив XValue в Marks. А вот отобразить по оси У (LeftAxis) только значения t[i] не получается никак. Предполагаю, что нужно использовать событие OnGetAxisLabel, но я так и не смогла понять как правильно с ним работать. Пробовала делать так:
procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis;
  Series: TChartSeries; ValueIndex: Integer; var LabelText: String);
var i: integer;
begin
 if (Sender=Chart1.LeftAxis) then
 for i:=1 to 10 do
  LabelText:=FloatToStr(t[i]);
end;

-везде выводится только последнее значение t[10].
Нажмите для просмотра прикрепленного файла
Подскажи, пожалуйста, как нужно сделать правильно?
volvo
1) чуть-чуть по другому добавляем точки к Chart-у:
var
  t: array[1 .. 10] of Double = ( // Это - просто для информации, что не обязательно задавать по отдельности
    0.375, 0.75, 1.875, 4.25, 16.375,
    56.125, 350.625, 1943, 24000.5, 409353
  );

procedure TForm1.Button10Click(Sender: TObject);
var x,i: integer;
begin
   Series1.Clear;
   x:=8;
   for i:=1 to 10 do
   begin
    Series1.AddXY(x,t[i],FloatToStr(t[i]),clRed); // А вот тут - коренное отличие: Text заполнен, а не пуст
    x:=x*2;
   end;
end;


2) свойства Left Axis -> Labels -> Style устанавливаем в Text. Это все. Но... Чтобы увидеть все метки при таких больших разбросах значений, придется увеличить размер компонента Chart, иначе нижние метки отображаться не будут.
*kitty*
Отлично! то, что нужно good.gif Спасибо большое, volvo!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.