Помощь - Поиск - Пользователи - Календарь
Полная версия: TChart, метки по осям
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
*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!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.