<
  • Главная
Статьи

побудова діаграм

  1. 1. Кругові діаграми
  2. 2. Стовпчасті діаграми
  3. 3. Лінійні діаграми

Нехай є послідовність позитивних дійсних чисел a 1, a 2, ..., an, позначає результати будь-яких вимірювань (наприклад, висоти вершин гір над рівнем моря, площею держав, середні оцінки учнів класу і т.д.). Потрібно побудувати візуалізоване уявлення цієї послідовності з метою порівняння отриманих результатів. У таких випадках використовують діаграми.

1. Кругові діаграми

У круговій діаграмі кожному елементу послідовності відповідає сектор, градусна міра якого пропорційна величині елемента.

Для побудови кругової діаграми необхідно підсумувати всі елементи послідовності, після чого знайти відносини кожного з елементів до отриманої суми (так буде обчислено, яку частину кола потрібно поставити у відповідність застосовується для розрахунку, - тобто розраховуються частки кола, що припадають на цю величину, якщо весь коло прийняти рівним 1). Всі ці розрахунки можна уявити формулами Для побудови кругової діаграми необхідно підсумувати всі елементи послідовності, після чого знайти відносини кожного з елементів до отриманої суми (так буде обчислено, яку частину кола потрібно поставити у відповідність застосовується для розрахунку, - тобто розраховуються частки кола, що припадають на цю величину, якщо весь коло прийняти рівним 1) . Потім ці відносні величини переводяться в градуси: , Після чого можна приступати до побудови діаграми.

Алгоритм в цьому випадку буде наступним:

  1. обчислити суму елементів послідовності;
  2. знайти величину сектору, відповідного кожної величиною;
  3. побудувати всі сектори в графічному режимі (в результаті повинен вийти повне коло). Бажано кожен сектор будувати своїм кольором, або використовувати різну штрихування, якщо сектори одноколірні.

Програма побудови кругової діаграми з цього алгоритму представлена ​​нижче:

{Кругова діаграма (с) А.П. Шестаков, 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 чергового стовпця діаграми на екрані буде визначатися формулою Для побудови діаграми виділимо на екрані прямокутну область з координатами відповідно верхнього лівого кута (Xlv, Ylv) і правого нижнього (Xpn, Ypn) де xmax - максимальний елемент послідовності, xi - черговий елемент послідовності.

Алгоритм побудови діаграми наступний:

  1. визначити кількість елементів послідовності і її максимальний елемент;
  2. згідно із зазначеною формулою побудувати стовпці діаграми. Їх ширина на екрані може бути розрахована за формулою де n - кількість елементів послідовності.

Програма побудови стовпчастий діаграми з цього алгоритму представлена ​​нижче:

{Стовпчаста діаграма (с) А.П. Шестаков, 2001.} program Stol_D; Uses Graph; Var a, xmax: Real; I, n: Byte; G, M: Integer; F: Text; {Файл містить дані для побудови діаграми} Stroka: String; Xlv, Ylv, Xpn, Ypn: Integer; {Координати вікна виводу діаграми} Begin Assign (F, '1.dat'); Reset (F); if not eof (f) then begin readln (f, xmax); n: = 1 end else n: = 0; While Not Eof (F) Do begin Readln (F, a); if a> xmax then xmax: = a; n: = n + 1 end; reset (f); G: = detect; M: = 0; initgraph (G, M, ''); Xlv: = 50; Ylv: = 50; Xpn: = GetMaxX-100; Ypn: = GetMaxY-50; i: = 0; {Номер стовпця} While Not Eof (f) Do begin Readln (F, a); setcolor (i mod 16 + 1); setfillstyle (1, i mod 16 + 1); {Черговий стовпець} bar (round (Xlv + i * (Xpn-Xlv) / n), Ypn, round (Xlv + (i + 1) * (Xpn-Xlv) / n), round (Ypn- (Ypn-Ylv) / xmax * a)); i: = i + 1; {Вкажемо, якого кольору яка величина відповідає} bar (getMaxx-70, 50+ (i-1) * 20, getMaxx-50, 50+ (i-1) * 20 + 15); str (a: 8: 2, stroka); outtextxy (getMaxx-40, 50+ (i-1) * 20 + 8, stroka); end; readln; close (F); closegraph End.

Результат роботи програми для зазначеного на малюнку набору чисел:

Результат роботи програми для зазначеного на малюнку набору чисел:

Для кращого сприйняття діаграми було б доцільно побудувати вертикальну вісь з розміткою по ній, що в даній програмі відсутня.

3. Лінійні діаграми

При побудові лінійних діаграм кожної величиною відповідає точка, розташована на певній висоті відносно початку відліку (висота розраховується так само, як і при побудові стовпчастих діаграм), всі крапки з'єднуються лініями. В результаті виходить ламана. Такого роду діаграми найчастіше ладу в тих випадках, коли необхідно візуалізувати динаміку зміни величин.

Програма аналогічна програмі побудови стовпчастих діаграм і наведена нижче.

{Лінійна діаграма (с) А.П. Шестаков, 2001.} program Stol_D; Uses Graph; Var a, xmax: Real; I, n: Byte; G, M: Integer; F: Text; {Файл містить дані для побудови діаграми} Stroka: String; Yn, Yk: Integer; Xlv, Ylv, Xpn, Ypn: Integer; {Координати вікна виводу діаграми} Begin Assign (F, '1.dat'); Reset (F); if not eof (f) then begin readln (f, xmax); n: = 1 end else n: = 0; While Not Eof (F) Do begin Readln (F, a); if a> xmax then xmax: = a; n: = n + 1 end; reset (f); G: = detect; M: = 0; initgraph (G, M, ''); Xlv: = 50; Ylv: = 50; Xpn: = GetMaxX-100; Ypn: = GetMaxY-50; line (xlv, ylv, xlv, ypn); line (xlv, ypn, xpn, ypn); i: = 0; {Номер точки} readln (f, a); Yn: = round (Ypn- (Ypn-Ylv) / xmax * a); str (a: 5: 1, stroka); outtextxy (round (Xlv + i * (Xpn-Xlv) / n) -20, Ypn + 20, stroka); While Not Eof (f) Do begin setcolor (i mod 16 + 1); setfillstyle (1, i mod 16 + 1); {Вкажемо, якого кольору яка величина відповідає} Readln (F, a); Yk: = round (Ypn- (Ypn-Ylv) / xmax * a); {Чергова лінія} line (round (Xlv + i * (Xpn-Xlv) / n), Yn, round (Xlv + (i + 1) * (Xpn-Xlv) / n), Yk); i: = i + 1; str (a: 5: 1, stroka); outtextxy (round (Xlv + i * (Xpn-Xlv) / n) -20, Ypn + 20, stroka); Yn: = Yk; {Запам'ятовуємо положення черговий точки} end; readln; close (F); closegraph End.

Результат роботи програми для зазначеного на малюнку набору чисел:

Всі представлені тут програми можуть бути об'єднані в одну програму із загальним меню, де користувачеві надається можливість вибрати вид діаграми.

Побудова діаграм засобами MS Excel описано тут .

© А.П. Шестаков, 2001.

Шестаков, 2001

Сайт створено в системі uCoz



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью