- 1
- 2
Построение диаграмм
Пусть имеется последовательность положительных действительных чисел a1, a2, ..., an, обозначающая результаты каких-либо измерений (например, высоты вершин гор над уровнем моря, площади государств, средние оценки учеников класса и т.д.). Требуется построить визуализированное представление этой последовательности с целью сравнения полученных результатов. В таких случаях используют диаграммы.
1. Круговые диаграммы
В круговой диаграмме каждому элементу последовательности соответствует сектор, градусная мера которого пропорциональна величине элемента.
Для построения круговой диаграммы необходимо просуммировать все элементы последовательности, после чего найти отношения каждого из элементов к полученной сумме (так будет вычислено, какую часть круга нужно поставить в соответствие данной величине, — т.е. рассчитываются доли круга, приходящиеся на данную величину, если весь круг принять равным 1). Все эти расчеты можно представить формулами . Затем эти относительные величины переводятся в градусы:, после чего можно приступать к построению диаграммы.
Алгоритм в этом случае будет следующим:
вычислить сумму элементов последовательности;
найти величину сектора, соответствующего каждой величине;
построить все секторы в графическом режиме (в результате должен получиться полный круг). Желательно каждый сектор строить своим цветом, или использовать разную штриховку, если секторы одноцветные.
Программа построения круговой диаграммы по этому алгоритму представлена ниже:
{Круговая диаграмма (с) А.П. Шестаков, 2001}
program Kr_D;
Uses Graph;
Var a, S : Real; I : Byte; G, M : Integer;
Xc, Yc, R : Integer; {координаты центра круга и его радиус}
F : Text; {файл содержит данные для построения диаграммы}
Alpha : Integer; {угол, соответствующий очередной величине}
SAngle : Integer; Stroka : String;
Begin
Assign(F, '1.dat'); Reset(F);
S := 0; {сумма элементов последовательности}
While Not Eof(F) Do
begin Readln(F, a); S := S + a end;
reset(f); G := detect; M := 0;
initgraph(G, M, ''); Xc := GetMaxX Div 2; Yc := GetMaxY Div 2;
R := 100; SAngle := 0; i := 1;
While Not Eof(f) Do begin
Readln(F, a); Alpha := round(A / S * 360); {вычисление угла}
setcolor(i mod 16 + 1); setfillstyle(1, i mod 16 + 1);
{построение сектора, соответствующего величине}
sector(Xc, Yc, SAngle, SAngle + Alpha, R, R);
SAngle := SAngle + Alpha; i:= i + 1;
{укажем, какому цвету какая величина соответствует}
bar(Xc+200, Yc-250+(i-1)*20, Xc+220, Yc-250+(i-1)*20+15);
str(a:8:2, stroka);
outtextxy(Xc + 230, Yc — 250 + 5 + (i — 1) * 20, stroka) end;
readln; close(F); closegraph End.
Результат работы программы для указанного на рисунке набора чисел:
2. Столбчатые диаграммы
Для построения диаграммы выделим на экране прямоугольную область с координатами соответственно верхнего левого угла (Xlv, Ylv) и правого нижнего (Xpn, Ypn). Высота столбца диаграммы, соответствующего максимальному элементу последовательности, будет совпадать с высотой прямоугольника. Ширина столбца будет зависеть от количества элементов последовательности: чем больше компонент, тем меньшей будет ширина. Таким образом, для построения диаграммы нужно определить количество компонентов последовательности и максимальный элемент последовательности. Высота vi очередного столбца диаграммы на экране будет определяться формулой где xmax — максимальный элемент последовательности, xi — очередной элемент последовательности.
Алгоритм построения
- 1
- 2
Похожие работы
Тема: Построение диаграмм |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
Тема: Построение диаграмм |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
Тема: Построение диаграмм в Excel |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Практическое задание) |
Тема: Построение диаграмм в Excel |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Практическое задание) |
Тема: Построение диаграмм в программе Excel |
Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
Интересная статья: Основы написания курсовой работы