![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про Chart [D6, Win95/98]
Катерина © (2002-04-10 16:23:00)Как сделать, чтобы в Chart часть линейного графика не выводилась?Например, есть массив A = (0,1,-99999,-99999,2,3,4,3,2,1). -999999 - пустые значения, их не надо рисовать. Сейчас приходится делать 2 (и более) серии и в каждой выводить одну неперывную линию одним цветом. Но хотелось, чтобы все непрерывные части одной линии (массива) имелись в одной серии. Точечные графики не подходят.
MBo (2002-04-11 11:41:00) [1]я пробовад
for i := 1 to n do
if a[i] > -999999 then
Series1.AddXY(i,a[i])
else Series1.AddNull;
все работало
REA (2002-04-11 10:44:00) [2]Гы гы. А я написал абсолютно свой компонент для графиков. Работает в сотню раз быстрее и траблов таких нет.
Но по топику имхо можно Series перегрузить, если не AddNull не помогает.
Катерина (2002-04-11 09:40:00) [3]Что-то у меня не проходит. Я делала
for i := 1 to n do
if a[i] > -999999 then
Chart.SeriesList[0].AddXY(i,a[i])
else Chart.SeriesList[0].AddNullXY(i,a[i],"");
но все равно рисуется весь массив.
MBo (2002-04-11 09:16:00) [4]AddNull однозначно
Катерина (2002-04-11 08:58:00) [5]Дело в том, что в этом случае последняя точка до разрыва (выбрасываемых значений) соединяется с первой точкой после разрыва (графики-то линейные), а мне нужна дырка на этом месте.
$hiC0 (2002-04-10 16:48:00) [6]Да или так :)
MBo (2002-04-10 16:44:00) [7]может, я не волне уяснил задачу, но почему не сделать
for i:=1 to amax do
if a[i]<>-999999 then
series1.add(a[i]);
MBo (2002-04-10 16:34:00) [8]а AddNull не подходит?
$hiC0 (2002-04-10 16:27:00) [9]У меня буквально в теперешнем проекте была точная такая-же трабла, я вышел из положения переписав все нужные значения массива A в массив А1 и его скармливал чарту, правда у меня были X и X1 :) Но это не существенно :)