Компонент построения графиков и диаграмм Chart

Компонент Chart – это панель, на которой можно рисовать двух- и трехмерные диаграммы на основе различных данных. Находится компонент на вкладке Additional. Компонент может одновременно изображать несколько графиков.

Комнент Chart является контейнером объектов Series типа TChartSeries - серий данных, характеризующихся различными стилями отображения. Каждый компонент может включать несколько серий. Если вы хотите отображать график, то каждая серия будет соответствовать одной кривой на графике. Если вы хотите отображать диаграммы, то для некоторых видов диаграмм можно наложить друг на друга несколько различных серий, для других, например, для круговых диаграмм, это, вероятно, будет выглядеть некрасиво. Однако и в этом случае вы можете задать для одного компонента Chart несколько серий одинаковых данных с разным типом диаграммы. Тогда, делая в каждый момент времени активной одну из них, вы можете предоставить пользователю выбор типа диаграммы, отображающей интересующие его данные.

Свойства компонента Chart

Значение Описание
AllowPanning Определяет возможность пользователя прокручивать наблюдаемую часть графика во время выполнения, нажимая правую кнопку мыши. Возможные значения: pmNone - прокрутка запрещена; pmHorizontal, pmVertical или pmBoth - разрешена соответственно прокрутка только в горизонтальном направлении, только в вертикальном или в обоих направлениях.
AllowZoom Позволяет пользователю изменять во время выполнения масштаб изображения, вырезая фрагменты диаграммы или графика курсором мыши.
Title Определяет заголовок диаграммы.
Foot Определяет подпись под диаграммой. По умолчанию отсутствует. Текст подписи определяется подсвойством Text.
Frame Определяет рамку вокруг диаграммы.
Legend Легенда диаграммы - список обозначений.
MarginLeft, MarginRight, MarginTop, MarginBottom Значения левого, правого, верхнего и нижнего полей.
BottomAxis, LeftAxis, RightAxis Эти свойства определяют характеристики соответственно нижней, левой и правой осей. Задание этих свойств имеет смысл для графиков и некоторых типов диаграмм.
LeftWall, BottomWall, BackWall Эти свойства определяют характеристики соответственно левой, нижней и задней граней области трехмерного отображения графика.
SeriesList Список серий данных, отображаемых в компоненте.
View3d Разрешает или запрещает трехмерное отображение диаграммы.
View3DOptions Характеристики трехмерного отображения.
Chart3DPercent Масштаб трехмерности.

Рядом со многими из перечисленных свойств в Инспекторе Объектов расположены кнопки с многоточием, которые позволяют вызвать ту или иную страницу Редактора Диаграмм - многостраничного окна, позволяющего установить все свойства диаграмм. Вызов Редактора Диаграмм возможен также двойным щелчком на компоненте Chart или щелчком на нем правой кнопкой мыши и выбором команды Edit Chart во всплывшем меню.

Если вы хотите попробовать воспроизвести приложение, сделайте двойной щелчок на компоненте Chart. Вы попадете в окно Редактора Диаграмм на страницу Chart, которая имеет несколько закладок. Прежде всего, нам понадобится закладка Series. Щелкните на кнопке Add добавить серию. Вы попадете в окно, в котором вы можете выбрать тип диаграммы или графика. В данном случае выберите Pie - круговую диаграмму. Воспользовавшись закладкой Titles, вы можете задать заголовок диаграммы, закладка Legend позволяет задать параметры отображения легенды диаграммы (списка обозначений) или вообще убрать ее с экрана, закладка Panel определяет вид панели, на которой отображается диаграмма, закладка 3D дает вам возможность изменить внешний вид вашей диаграммы: наклон, сдвиг, толщину и т.д.

Когда вы работаете с Редактором Диаграмм и выбрали тип диаграммы, в компонентах Chart на вашей форме отображается ее вид с занесенными в нее условными данными. Поэтому вы сразу можете наблюдать результат применения различных опций к вашему приложению, что очень удобно. Страница Series, также имеющая ряд закладок, дает вам возможность выбрать дополнительные характеристики отображения серии. В частности, для круговой диаграммы на закладке Format полезно включить опцию Circled Pie, которая обеспечит при любом размере компонента Chartотображение диаграммы в виде круга. На закладке Marks кнопки группы Style определяют, что будет написано на ярлычках, относящихся к отдельным сегментам диаграммы: Value - значение, Percent - проценты, Label - названия данных и т.д. На закладке General установлен шаблон процентов, обеспечивающий отображение только целых значений.

Вы можете, добавить на компонент Chart еще одну тождественную серию, нажав на закладке Series страницы Chart кнопку Clone, а затем для этой новой серии нажать кнопку Change (изменить) и выбрать другой тип диаграммы, например, Bar. Конечно, два разных типа диаграммы на одном рисунке будут выглядеть плохо. Но вы можете выключить индикатор этой новой серии на закладке Series, а потом предоставить пользователю возможность выбрать тот или иной вид отображения диаграммы.

Закладки Axis и Wolls позволят задать координатные характеристики осей и трехмерных граней графика.

Для задания отображаемых значений надо использовать методы серий Series. Остановимся только на трех основных методах:

1.Метод Clear очищает серию от занесенных ранее данных.

2.Метод Add позволяет добавить в диаграмму новую точку.

Параметр AValue соответствует добавляемому значению, параметр ALabel - название, которое будет отображаться на диаграмме и в легенде, AColor - цвет. Параметр ALabel - не обязательный, его можно задать пустым: "".

3. Метод AddXY позволяет добавить новую точку в график функции. Параметры AXValue и AYValueсоответствуют аргументу и функции. Параметры ALabel и AColor те же, что и в методе Add.

Пример

int А1=155;

int А2=251;

int А3=203;

int А4=404;

const Pi=3.14159;

Series1->Clear();
Series1->Add(A1,"Цех 1",clYellow);

Series1->Add(A2,"Цех 2",clBlue);

Series1->Add(A3,"Цех 3",clRed);

Series1->Add(A4,"Цех 4",clPurple);

Series2->Clear();
Series3->Clear();
for (int i = 0; i <= 100; i++)

{
Series2->AddXY(0.02*Pi*i,sin(0.02*Pi*i),"", clRed);

Series3->AddXY(0.02*Pi*i,cos(0.02*Pi*i),"",clBlue);
}

Эту процедуру можно включить в обработку щелчка какой-нибудь кнопки, в команду меню или просто в событие OnCreate формы. Операторы Clear нужны, если в процессе работы приложения вы собираетесь обновлять данные. Без этих операторов повторное выполнение методов Add и AddXY только добавит новые точки, не удалив прежние.

Если вы предусмотрели, например, для данных, отображаемых в диаграмме, две серии Series1 иSeries4 разных видов - Pie и Bar, то можете ввести процедуру, изменяющую по требованию пользователя тип диаграммы. Эту процедуру можно ввести в событие OnClick какой-нибудь кнопки, в команду меню или, например, просто в обработку щелчка на компоненте Chart. Для того, чтобы загрузить данные в Series4 и сделать эту диаграмму в первый момент невидимой, можно вставить в конце приведенной ранее процедуры операторы:

Series4->Assign(Series1);
Series4->Active = false;

Первый из этих операторов переписывает данные, помещенные в Series1, в серию Series4. А второй оператор делает невидимой серию Series4. Смену типа диаграммы осуществляет процедура:

Series1->Active = ! Series1->Active;

Series4->Active = ! Series4->Active;

Компонент построения графиков и диаграмм Chart - student2.ru

Рис.1 Окно редактора диаграмм с открытой вкладкой Chart

Задание 1

Заполнить серии для синусоиды и косинусоиды.

Form1->Series1->Active=false; //избежать мелькания изображения

Form1->Series2->Active=false; // при заполнении серии большими данными

Form1->Series1->Clear(); //Для замены предыдущих данных

Form1->Series2->Clear();

a=StrToFloat(Form1->Edit1->Text); //Получение границ отрезка

b=StrToFloat(Form1->Edit2->Text);

h=fabs(b-a)/100; //Расчет шага

x=a; //Начать с левой границы

while (x<=b) //Дойти до правой границы

{

Form1->Series1->AddXY(x, sin(x), "", clRed); //Точка первого графика

Form1->Series2->AddXY(x, cos(x), "", clBlue); //Точка второго графика

x+=h;} //Перейти к следующей точке

Form1->Series1->Active=true; //Отобразить графики

Form1->Series2->Active=true;

Компонент построения графиков и диаграмм Chart - student2.ru

Рис. 2. Работа приложения построения графика функции

Задание 2

Разработать приложение с использованием компонентов: Chart и DateTimePicker и других необходимых элементов интерфейса для создания приложения, обрабатывающего информацию о датах в графическом виде. Приложение должно строить биоритмы некоторого человека по дате его рождения на необходимый период. На основе анализа индивидуальных биоритмов прогнозировать неблагоприятные дни, выбрать благоприятные дни для разного рода деятельности.

Существует гипотеза, что жизнь человека подчиняется трем циклическим процессам, называемых биоритмами: физическому (продолжительность 23 дня), эмоциональному (продолжительность 28 дней) и интеллектуальному (продолжительность 33 дня). Биоритмы характеризуют подъемы и спады нашего состояния в виде синусоиды. Дни, когда график пересекает ось абсцисс, считаются неблагоприятными (особенно, если в этой точке пересекается не один график).

За точку отсчета всех трех биоритмов берется день рождения человека, для которого он строится. Расчет точек графика каждого цикла биоритма осуществляется по формулам:

Fiz(x)=sin (2πK/23); для расчета точек физического цикла

Emo(x)=sin (2πK/28); для расчета точек эмоционального цикла

Int(x)= sin (2πK/33); для расчета точек интеллектуального цикла

Здесь K – это количество дней между датой рождения человека и рассчитываемой датой, для которой отображается точка на графике.

1. На форме разместить компоненты: Chart с тремя сериями, DateTimePicker для ввода даты рождения человека, контейнер радиокнопок для выбора исследуемого периода: «от начала текущего месяца», «на месяц с текущего дня», «на месяц от произвольного дня», «на текущий год», «на текущую неделю», между двумя интересующими датами.

2. Выполнить необходимые настройки для диаграммы: заголовки, цвета, легенду и другие.

3. Щелчком по кнопке «Построить» изобразить три графика.

4. Щелчком по точке графика отобразить в подсказке значения этой точки.

5. Выполнить сохранение диаграммы в файл и загрузки ее из файла.

6. Осуществить возможность печати диаграммы.

7. Разработать локальное меню для настройки атрибутов диаграммы, осей, плоскостей и ее легенды.

8. Указать список благоприятных и неблагоприятных дней для каждого цикла.

9. Рассчитать точки пересечения каждого графика с осью абсцисс.

Компонент построения графиков и диаграмм Chart - student2.ru

Рис. 3. Момент запущенного приложения «Биоритмы человека»

Контрольные вопросы

  1. Для каких целей предназначен компонент Chart?
  2. Как называется объект, гдеданные, по которым строятся графики?
  3. Как в компоненте Chart можно добавить новый график (серию)?
  4. Как задаются координатные характеристики осей?
  5. Какой метод позволяет добавить новую точку в график функции?

Практическая работа №25

Тема: «Применение технологии Drag & Drop в приложениях».

Цель работы: Научиться применять технологию Drag & Drop в приложениях.

Время выполнения: подготовка – 5 мин; выполнение – 125 мин.; проверка – 10 мин; всего – 135 мин.

Система Drag & Drop позволяет напрямую перетаскивать объекты между разными источниками, например, из одного списка в другой. «Перетаскивание» представляет собой нажатие и удерживание левой кнопки мыши на объекте и дальнейшее его перемещение за курсором в желаемую область.

Наши рекомендации