Создание кругової діаграми з допомогою модуля GD:: Graph
В тому випадку зображення діаграми виводиться в файл в графічному форматі, однак його вивести у стандартний потік виведення STDOUT. Це може знадобитися до створення «нальоту «діаграм відображення динамічно змінюються даних веб-сторінці. І тому доведеться дещо видозмінити вищенаведений код программы. При бажанні можна використовувати шрифти TrueType замість вбудованих. У рядках 27−29 вказуються… Читати ще >
Создание кругової діаграми з допомогою модуля GD:: Graph (реферат, курсова, диплом, контрольна)
Создание кругової діаграми з допомогою модуля GD: Graph
Сейчас, щоб задовольнити потреби примхливих користувачів, багато хто Інтернет-ресурс будується на динамічному відображенні представленої інформації. Сьогодні ми розглянемо із таких можливостей, саме — реалізацію динамічних кругових диаграмм.
Язык програмування Perl пропонує розробникам великий інструментарій для створення, обробки, зміни та управління вмістом веб-сайтів. З допомогою Perl-модуля GD: Graph створення кругової діаграми стає справою простою й доступним практично кожному.
К прикладу, ваш начальник хоче порівняльний графік, відображає динаміку продажу онлайні, у звичайних крамницях та у вигляді дистриб’юторів. Сам графік має споруджуватися з урахуванням CSV-файла (Comma Separated Values), який щотижня експортується з Microsoft Excel і розміщується в окремої директорії в локальної мережі. Маємо написати скрипт, автоматично генеруючий кругову діаграму з урахуванням наявних CSV-данных.
Листинг 1.
1 use strict;
2 use GD: Graph:pie;
3 use Text: CSV_XS;
5 my @data;
7 my $csv = new Text: CSV_XS;
8 open (FILE, «excel.csv ») || die «Cannot open excel. csv: $!n » ;
9 while (my $line =) {.
10 $csv->parse ($line);
11 my @col = $csv->fields;
12 push (@data,@col);
13 }.
15 my $graph = new GD: Graph:pie (300, 300);
17 $graph->set (.
18 title => «Заголовок кругової діаграми » ,.
19 label => «Пояснювальна підпис » ,.
20 axislabelclr => «black » ,.
21 «3d «=> 1,.
22 start_angle => 90,.
23 suppress_angle => 5,.
24).
25 or warn $graph->error;
27 $graph->set_title_font («/usr/share/fonts/ttf/windows/times.ttf », 18);
28 $graph->set_value_font («/usr/share/fonts/ttf/windows/times.ttf », 12);
29 $graph->set_label_font («/usr/share/fonts/ttf/windows/times.ttf », 14);
31 $graph->plot (@data) or die $graph->error;
33 open (GRAPH, «>graph.jpg ») || die «Cannot open graph. jpg: $!n » ;
34 print GRAPH $graph->gd->jpeg (100);
В рядку 3 наведеного лістингу ми завантажуємо модуль Text: CSV_XS, скачати безплатну версію якого на CPAN (Comprehensive Perl Archive Network). У рядку 7 створюємо новий об'єкт класу Text: CSV_XS, відкриваємо CSV-файл в рядку 8 і зчитуємо дані з файла в масив @data (рядки 9−13). Рядок 10 викликає метод parse (), який розбиває рядки файла по колонкам. Сформовані колонки повертаються з допомогою методу fields () в рядку 11 і додаються у вигляді ряду в масив @data (рядок 12). Інакше кажучи, замість формування масиву @data вручну, ми можемо створити його із зовнішнього файла (в тому випадку — CSV).
Далее (в рядку 15) створюємо об'єкт діаграми потрібної різновиду (у разі - pie) з заданим розміром изображения.
Третий параметр в рядку 21 дорівнює 1, яка передбачає створення тривимірної кругової діаграми (значення «0 «виводить двомірний графік і використовують за вмовчанням). Далі необхідно визначити початкову точку побудови діаграми, з якої скрипт розпочинатиме відлік секторів графіка. Значення поставив у градусах і з вмовчанням одно «0 «(ми встановили значення «90 », рядок 22). Ми можемо встановити потрібне значення параметра suppress_angle, що визначає мінімальний розмір сектора кругової діаграми в градусах.
При бажанні можна використовувати шрифти TrueType замість вбудованих. У рядках 27−29 вказуються назви гарнітур, використовуються, відповідно, для заголовка діаграми, найменування секторів і пояснювальних підписів до графіка. Цифри, що йдуть після вказівки гарнітур, означають встановлений розмір шрифта.
В рядку 33 виводиться зображення кругової діаграми в файл в форматі JPEG (чи PNG). У наступній рядку параметром методу jpeg () можна поставити ступінь оптимізації (якості) зображення (в процентах).
В тому випадку зображення діаграми виводиться в файл в графічному форматі, однак його вивести у стандартний потік виведення STDOUT. Це може знадобитися до створення «нальоту «діаграм відображення динамічно змінюються даних веб-сторінці. І тому доведеться дещо видозмінити вищенаведений код программы.
Листинг 1.
32 print «Content-type: image/jpegnn » ;
33 binmode (STDOUT);
34 print $graph->gd->jpeg (100);
Чтобы вивести кругову діаграму веб-сторінці, у властивому місці документа слід вставити таку HTML-конструкцию:
.
Список литературы
Для підготовки даної праці були використані матеріали із сайту internet.