Мануал по dxgraph - классу для построения диаграмм и графиков


Оглавление

Краткое описание класса

Класс dxgraph предоставляет возможности построения столбчатых (вертикальных и горизонтальных) диаграмм, графиков всевозможных функций, круговых диаграмм, графиков по точкам, а также создания легенд этих диаграмм, сетки, координатных осей и т.д. Класс почти не обрабатывает ошибок, поэтому проверка корректности данных лежит на ваших плечах. Просто не передавайте вместо чисел строки, или вместо массивов булевые значения, и всё будет работать:)
Новая версия класса - 1.1. Добавлены функции image_grad и random_pixels, улучшена функция diagram_set_colors. Также добавлена private-функция imagettfbbox_fixed, исправляющая ошибку вычисления размеров наклонного текста функции imagettfbbox. Засчёт этого улучшены функции maxttfxsize и maxttfysize.

Update 1.2
Добавлена функция axis_set_round - позволяет указать, на сколько знаков после запятой производить округление подписей координатных осей.
Добавлены функции diagram_set_nums и hgraph_set_nums - позволяют указать, на сколько знаков после запятой производить округление подписей диаграмм и графиков и на сколько делить все числа подписей.

Описание переменных класса

Все переменные являются private, поэтому не меняйте их вручную. Можете сильно не изучать эти переменные, они описаны для ознакомления. Если что-то будет непонятно, смотрим пример.

Разные переменные
$font_angleтекущий угол наклона шрифта
$font_sizeтекущий размер шрифта
$fontимя установленного текущим шрифта
$truecolorесли true, то изображение - true color
$image_widthширина изображения
$image_heightвысота изображения
$imageID текущего изображения
$rкрасная составляющая текущего цвета
$gзелёная составляющая текущего цвета
$bсиняя составляющая текущего цвета
$tileID текущей текстуры
$colorтекущий цвет
$styleтекущий стиль рисования
$brushID текущей кисти
$thicknessтекущая толщина линии рисования
$isfilledесли true, то рисование фигур ведётся с заливкой
$tiledесли true, то рисование ведётся с использованием текстуры
$styledесли true, то рисование ведётся с использованием стиля
$brushedесли true, то рисование ведётся с использованием кисти
$lastcolorsмассив цветов, использовавшихся для рисования последней диаграммы
Рисунок (точка) над диаграммами/графиками (см. пример)
$pointID текущей точки
$point_xсмещение по оси x текущей точки
$point_yсмещение по оси y текущей точки
$point_widthширина текущей точки
$point_heightвысота текущей точки
$point_filenameимя файла текущей точки
$point_filetypeтип файла текущей точки
Графики функций
$graph_xcenterX-координата центра графика функции
$graph_ycenterY-координата центра графика функции
$graph_boundесли true, то график функции будет ограничен (см. пример)
$graph_xfromлевая X-координата границы графика функции относительно центра
$graph_yfromнижняя Y-координата границы графика функции относительно центра
$graph_xtoправая X-координата границы графика функции относительно центра
$graph_ytoверхняя Y-координата границы графика функции относительно центра
$graph_xscaleмасштаб графика по оси x
$graph_yscaleмасштаб графика по оси y
$graph_precisionточность рисования графика
Координатные оси
$axis_xcenterX-координата центра координатной оси
$axis_ycenterY-координата центра координатной оси
$axis_backlengthдлина левой/нижней части координатной оси
$axis_frontlengthдлина правой/верхней части координатной оси
$axis_makesignесли true, то на координатной оси будут созданы подписи
$axis_signnumшаг числа-подписи
$axis_signstepшаг координаты подписи
$axis_signcolorцвет подписи
$axis_signxX-смещение подписи для вертикальной оси
$axis_signyY-смещение подписи для горизонтальной оси
$axis_symbolsмассив пользовательских подписей
$axis_backarrowесли true, то слева/снизу оси будет нарисована стрелка
$axis_frontarrowесли true, то справа/сверху оси будет нарисована стрелка
$axis_arrowxдлина стрелки
$axis_arrowyширина стрелки пополам
$axis_signfromначало отсчёта подписей
$axis_rules1если true, то сверху/слева от оси будет нарисована шкала
$axis_rules2если true, то снизу/справа от оси будет нарисована шкала
$axis_lintervalинтервал делений шкалы
$axis_bintervalинтервал длинных делений шкалы
$axis_littleдлина короткого деления
$axis_bigдлина длинного деления
Сетка
$net_stepxшаг сетки по оси x
$net_stepyшаг сетки по оси y
Общие для всех диаграмм переменные
$diagram_xX-координата начала столбчатой диаграммы/центра круговой диаграммы
$diagram_yY-координата начала столбчатой диаграммы/центра круговой диаграммы
$diagram_widthширина столбца столбчатой диаграммы
$diagram_stepпробел между столбцами столбчатой диаграммы
$diagram_max_heightмаксимальная высота столбца стольбатой диаграммы
$diagram_signedесли true, то диаграмма будет подписана
$diagram_signcolorцвет подписей диаграммы
$diagram_indexпостфикс подписей диаграммы
$diagram_prefixпрефикс подписей диаграммы
$diagram_txtxX-смещение подписей диаграммы
$diagram_txtyY-смещение подписей диаграммы
$diagram_colorsпользовательские цвета столбцов столбчатой диаграммы/секторов круговой диаграммы
$diagram_shadowxX-смещение тени столбцов/секторов диаграммы
$diagram_shadowyY-смещение тени столбцов/секторов диаграммы
$diagram_shadowtransparencyпрозрачность тени
$diagram_shadowcolorsпользовательские цвета теней
$cdiagram_max_radiusрадиус круговой диаграммы
$diagram_signesпользовательские подписи
Переменные построения графиков по точкам
$hgraph_xX-координата начала графика
$hgraph_yY-координата начала графика
$hgraph_maxheightмаксимальная высота графика
$hgraph_intervalинтервал между точками графика по оси x
$hgraph_hidelinesесли true, то линии графика не будут нарисованы
$hgraph_signedесли true, то будут нарисованы подписи
$hgraph_sxX-смещение подписи
$hgraph_syY-смещение подписи
$hgraph_signcolorцвет подписей
$hgraph_signsпользовательские подписи
$hgraph_fillcolorцвет заливки
$hgraph_indexпостфикс подписей графика
$hgraph_prefixпрефикс подписей графика
Переменные рисования легенд графиков и диаграмм
$legend_xX-координата легенды
$legend_yY-координата легенды
$legend_textsподписи легенды
$legend_fieldsотступы подписей от рамки
$legend_bordercolorцвет рамки
$legend_borderwidthтолщина рамки
$dlegend_colorboxesесли true, к легенде диаграммы будут добавлены цветные маркеры
$dlegend_boxbordercolorцвет рамки маркеров
$dlegend_typeтип маркеров
$legend_fontcolorцвет текста легенды
$legend_strintervalинтервал между строками
$legend_nameимя легенды
$legend_name_sizeразмер шрифта имени легенды
$legend_name_fontcolorцвет шрифта имени легенды
$legend_fontnameимя шрифта имени легенды
$legend_colortextесли true, то текст легенды будет окрашен в соответствующие диаграмме/графику цвета
$hlegendsмассив с информацией о текущей легендеграфика по точкам
$hlegend_linelenдлина добавочных линий легенды графика по точкам
Переменные рисования ступенчатых графиков
$sgraph_valuesзначения для построения ступенчатого графика
$sgraph_maxheightмаксимальная высота ступенчатого графика
$sgraph_xX-координата начала ступенчатого графика
$sgraph_yY-координата начала ступенчатого графика
$sgraph_backarrowесли true, то будут нарисованы стрелки сзади ступеней
$sgraph_frontarrowесли true, то будут нарисованы стрелки спереди ступеней
$sgraph_arrowxдлина стрелки
$sgraph_arrowyширина стрелки пополам
$sgraph_transparencyустанавливает прозрачность фона ступенчатого графика
$sgraph_rкрасная составляющая цвета фона ступенчатого графика
$sgraph_gзелёная составляющая цвета фона ступенчатого графика
$sgraph_bсиняя составляющая цвета фона ступенчатого графика

Описание функций класса

Читайте описания функций, разбирайте пример. Если что будет в нём непонятно - возвращайтесь сюда.
Основные функции
dxgraph($image_width=320, $image_height=240, $truecolor=true, $file='', $type=0, $copyresized=true, $createonlyfromfile=false) public, конструктор класса, создаёт изображение
передаваемые параметры:
$image_width - ширина создаваемого изображения
$image_height - высота создаваемого изображения
$truecolor - создавать ли изображение true color? Если true, то функция пытается создать true color изображение. Если не выходит, обойдёмся обычным (вроде 256 цветов)
$file - необязательный параметр, если задан, то создаётся изображение из файла ($file - путь к этому файлу)
$type - необязательный параметр, тип изображения в файле $file (0 - png, 1 - jpeg, 2 - gif)
$copyresized - если true и задан $file, то изображение из файла будет подогнано под заданную ширину и высоту. Если нет, то вставится без изменения размеров
$createonlyfromfile - если true и задан $file, то изображение создаётся исключительно из файла с его параметрами (высота, ширина, глубина цвета). $truecolor всегда будет true
image_resize($width=1, $height=1, $src_resize=false) public, изменяет размер изображения
передаваемые параметры:
$width - новая ширина
$height - новая высота
$src_resize - если true, то размер содержимого изображения будет подогнан под новый размер
image_rotate($angle=0) public, вращает изображение. Непокрытая зона после поворота будет залита текущим цветом (см. set_color)
передаваемые параметры:
$angle - угол поворота
get_image() public, возвращает ID текущего изображения
get_tile() public, возвращает ID текущей текстуры
get_brush() public, возвращает ID текущей кисти
get_point() public, возвращает ID текущей точки диаграмм/графиков (см. пример)
image_destroy_point() public, удаляет текущую точку диаграмм/графиков. Используется перед установкой новой точки.
image_rotate_point($angle=0) public, вращает текущую точку диаграмм/графиков и заливает освободившееся при повороте пространство текущим цветом
передаваемые параметры:
$angle - угол поворота
get_image_params() public, возвращает массив параметров изображения ([0] => ширина, [1] => высота, [2] => глубина цвета)
get_current_params() public, возвращает массив с текущими параметрами ([0] => красная составляющая, [1] => зелёная составляющая, [2] => синяя составляющая, [3] => текущая толщина линий, [4] => имя шрифта, [5] => его размер, [6] => его угол наклона)
set_font($font_size=20, $font_angle=0, $name='') public, устанавливает шрифт текста. Достаточно задать имя шрифта 1 раз, потом можно просто менять его размер и угол наклона.
передаваемые параметры:
$name - имя файла шрифта (или путь к нему)
$font_size - размер шрифта
$font_angle - угол наклона текста
set_line_thickness($lvl=1) public, устанавливает толщину линий для рисования
передаваемые параметры:
$lvl - толщина в пикселах
set_image_tile($name, $type=0) public, устанавливает текстуру для рисования
передаваемые параметры:
$name - имя файла текстуры (или путь к нему)
$type - тип изображения в файле (0 - png, 1 - jpeg, 2 - gif)
image_set_point($file=NULL, $type=0, $for_hgraph=false, $x=false, $y=false) public, устанавливает точку диаграмм/графиков (см. пример)
передаваемые параметры:
$file - имя файла точки (или путь к нему)
$type - тип изображения в файле (0 - png, 1 - jpeg, 2 - gif)
$for_hgraph - укажите true, если используете точку для графиков, false - для диаграмм
$x, $y - смещения точки относительно центра по осям x и y соответственно. Если указано false, то будет производиться автоматическая центровка по заданной координате
set_color($r=255, $g=255, $b=255, $transparency=false) public, устанавливает цвет рисования
передаваемые параметры:
$r - красная составляющая цвета
$g - зелёная составляющая цвета
$b - синяя составляющая цвета
$transparency - если не false, то будет создан прозрачный цвет с прозрачностью $transparency
image_ttf_text($text, $x=0, $y=0, $unicode=false, rotate_each=false, $letter_space=20, $color=NULL, $nsize=-1, $addfont='') public, наносит надпись на изображение, используя текущие настройки шрифта
передаваемые параметры:
$text - текст надписи
$x, $y - координаты начала текста
$unicode - если true, то строка будет преобразована в unicode-кодировку. Используйте, если русские символы выводятся иероглифами
$rotate_each - если true, то на угол $font_angle поворачивается каждая буква текста. Если false, то поворачивается весь текст целиком
$letter_space - расстояние между буквами текста. Используется, если $rotate_each=true
$color - внутренний параметр класса, задаёт временный цвет шрифта
$nsize - внутренний параметр класса, задаёт временный размер шрифта
$addfont - внутренний параметр класса, задаёт временный шрифт
Данная функция считает координатой (0,0) верхний левый угол рисунка.
image_fill($rect_fill=false) public, заливает изображение
передаваемые параметры:
$rect_fill - если true, то заливка ведётся с помощью прямоугольника. Рекомендуется, так как стандартная функция заливки иногда не работает
image_output($format=0, $file=NULL) public, выводит/сохраняет изображение
передаваемые параметры:
$format - формат выводимого изображения (0 - png, 1 - jpeg, 2 - gif)
$file - если задано, то вывод изображения производится не в браузер, а в файл $file
image_arc($xcenter=0, $ycenter=0, $width=0, $height=0, $angle_start=0, $angle_end=360, $fillstyle=IMG_ARC_PIE, $speccolor=NULL, $notfilled=false) public, рисует дугу
передаваемые параметры:
$xcenter, $ycenter - координаты центра дуги
$width - ширина дуги
$height - высота дуги
$angle_start - начальный угол дуги
$angle_end - конечный угол дуги
$isfilled - если true, рисует дугу с заливкой
$fillstyle - тип заливки дуги (IMG_ARC_PIE/IMG_ARC_CHORD/IMG_ARC_NOFILL/IMG_ARC_EDGED)
$speccolor - внутренний параметр класса, задаёт временный цвет дуги
$notfilled - внутренний параметр класса, если true, то дуга залита не будет в любом случае
Данная функция считает координатой (0,0) верхний левый угол рисунка.
image_filled_ellipse($xcenter=0, $ycenter=0, $width=0, $height=0) public, рисует эллипс с заливкой
передаваемые параметры:
$xcenter, $ycenter - координаты центра эллипса
$width - ширина эллипса
$height - высота эллипса
Данная функция считает координатой (0,0) верхний левый угол рисунка.
image_circle($xcenter=0, $ycenter=0, $radius=0, $fillstyle=IMG_ARC_PIE, $speccolor=NULL, $notfilled=false) public, рисует окружность/круг
передаваемые параметры:
$xcenter, $ycenter - координаты центра окружности
$radius - диаметр окружности
$isfilled - если true, рисует окружность с заливкой (круг)
$fillstyle - тип заливки окружности (IMG_ARC_PIE/IMG_ARC_CHORD/IMG_ARC_NOFILL/IMG_ARC_EDGED)
$speccolor - внутренний параметр класса, задаёт временный цвет окружности/круга
$notfilled - внутренний параметр класса, если true, то окружность залита не будет в любом случае
Данная функция считает координатой (0,0) верхний левый угол рисунка.
image_line($x1, $y1, $x2, $y2, $scolor=NULL, $width=-1) public, рисует линию
передаваемые параметры:
$x1, $y1 - координаты начала линии
$x2, $y2 - координаты конца линии
$speccolor - внутренний параметр класса, задаёт временный цвет линии
$width - внутренний параметр класса, задаёт временную толщину линии
image_make_border() public, рисует рамку
image_rectangle($x1, $y1, $x2, $y2, $speccolor=NULL, $notfilled=false, $width=-1) public, рисует прямоугольник
передаваемые параметры:
$x1, $y1 - координаты верхнего левого угла прямоугольника
$x2, $y2 - координаты правого нижнего угла прямоугольника
$speccolor - внутренний параметр класса, задаёт временный цвет прямоугольника
$notfilled - внутренний параметр класса, если true, то прямоугольник залита не будет в любом случае
$width - внутренний параметр класса, задаёт временную толщину линий прямоугольника
Данная функция считает координатой (0,0) верхний левый угол рисунка.
image_hatch($step=7, $angle=45) public, рисует штриховку
передаваемые параметры:
$step - шаг штриховки
$angle - угол наклона штриховки
image_polygon($points, $num_points, $fillcolor=NULL, $filled=false) public, рисует многоугольник
передаваемые параметры:
$points - массив точек вида array(x1,y1, x2,y2, x3,y3 и т.д)
$num_points - число точек
$fillcolor - внутренний параметр класса, задаёт временный цвет многоугольника
$filled - внутренний параметр класса, если true, рисует многоугольник с заливкой
Данная функция считает координатой (0,0) верхний левый угол рисунка.
image_reverse_colors() public, инвертирует цвета изображения
image_gray() public, делает изображение чёрно-белым
image_emboss() public, придаёт эффект теснения изображению
image_smooth($lvl=1) public, размывает изображение
передаваемые параметры:
$lvl - уровень размытия (0 - самое сильное)
image_remove_mean() public, делает изображение чётче
image_set_brightness($lvl=0) public, изменяет яркость изображения
передаваемые параметры:
$lvl - уровень яркости
image_set_contrast($lvl=0) public, изменяет контраст изображения
передаваемые параметры:
$lvl - уровень контраста
image_pixel($x=0, $y=0) public, рисует точку
передаваемые параметры:
$x, $y - координаты точки
paste_image($file, $type=0, $copyresized=false, $dst_x=0, $dst_y=0, $src_x=0, $src_y=0, $src_w=-1, $src_h=-1, $dst_w=-1, $dst_h=-1) public, вставляет заданное изображение в текущее
передаваемые параметры:
$name - имя файла изображения для вставки (или путь к нему)
$type - формат изображения для вставки (0 - png, 1 - jpeg, 2 - gif)
$copyresized - если true, то при вставке меняет размер изображения
$dst_x, $dst_y - координаты вставки изображения
$src_x, $src_y - координаты в изображении для вставки, начиная с которых изображение будет вставлено (0,0 - начало)
$src_w, $src_h - ширина и высота изображения для вставки (если зададите меньше истинной ширины и высоты, будет вставлена чать изображения)
$dst_w, $dst_h - новая ширина и высота вставляемого изображения (если $copyresized=true)
Примечание: если какие-то из переменных $src_w, $src_h, $dst_w, $dst_h меньше нуля, то будут вырбаны соответствующие максимальные размеры рисунков. Также данная функция считает координатой (0,0) верхний левый угол рисунка.
image_set_style($pixels) public, устанавливает стиль рисования
передаваемые параметры:
$pixels - массив пикселов стиля (см. пример)
image_set_brush($file, $type=0) public, устанавливает кисть для рисования
передаваемые параметры:
$name - имя файла изображения-кисти (или путь к нему)
$type - формат изображения-кисти (0 - png, 1 - jpeg, 2 - gif)
rgb($r=255, $g=255, $b=255) public, создаёт и возвращает заданный цвет
передаваемые параметры:
$r - красная составляющая цвета
$g - зелёная составляющая цвета
$b - синяя составляющая цвета
image_make_color_transparent($closest=false) public, делает текущий цвет прозрачным
передаваемые параметры:
$closest - если true, то прозрачным будет сделан цвет, ближайший к текущему
destroy_all() public, удаляет из памяти изображение, кисть, текстуру, точку диаграмм. После вызова данной функции Вы не сможете работать с объектом класса, используйте её после завершения всех действий с изображением для освобождения памяти.
to_unicode($text,$from='w') private, используется классом для преобразования текстовой строки в unicode-кодировку
передаваемые параметры:
$text - текст
$from - исходная кодировка страницы
maxttfxsize($txt='', $size=-1) private, используется классом для получения максимального размера текста по оси X
передаваемые параметры:
$txt - текст
$size - временный размер текста
Может возвращать отрицательное число.
maxttfysize($txt='', $size=-1) private, используется классом для получения максимального размера текста по оси Y
передаваемые параметры:
$txt - текст
$size - временный размер текста
Может возвращать отрицательное число.
imagettfbbox_fixed($size, $angle, $font, $text) private, аналог стандартной PHP-функции imagettfbbox, но исправляет ошибку расчёта размеров наклонных шрифтов
set_drawing($isfilled=false, $tiled=false, $styled=false, $brushed=false) public, устанавливает текущие настройки рисования
передаваемые параметры:
$isfilled - если true, рисование фигур производится с заливкой
$tiled - если true и $isfilled=true, рисование фигур с заливкой текстурой
$styled - если true, рисование производится с использованием текущего стиля
$brushed - если true, рисование производится с использованием кисти
image_grad($type=0, $colors=array(), $xfrom=0, $yfrom=0, $xto=-1, $yto=-1, $transparency=NULL) public, создаёт градиентную заливку
передаваемые параметры:
$type - тип градиента. 0 - горизонтальный, 1 - вертикальный, 2 - двойной горизонтальный, 3 - двойной вертикальный
$colors - цвета градиента, массив вида array($r1,$r2, $g1,$g2, $b1,$b2), где $r1,$r2 - от какого и до какого значения меняется красная составляющая. Аналогично, зелёная и синяя. Пример: array(250,0,250,0,50,50) - красная: от 250 до 0, зелёная: от 250 до 0, синяя не меняется (всегда 50)
$xfrom, $yfrom - координаты начала градиента (относитеьно верхнего левого угла рисунка)
$xto, $yto - координаты конца градиента (относитеьно верхнего левого угла рисунка). Если переданы отрицательные значения, градиент не будет ограничен снизу и/или справа
$transparency - если не NULL, то задаёт прозрачность цветов градиента
random_pixels($colors=array(), $xfrom=0, $yfrom=0, $xto=-1, $yto=-1, $transparency=NULL) public, рисует прямоугольник, заполненный пикселами случайных цветов
передаваемые параметры:
$colors - цвета пикселов, массив вида array($r1,$r2, $g1,$g2, $b1,$b2), где $r1,$r2 - от какого и до какого значения меняется красная составляющая. Аналогично, зелёная и синяя. Или массив вида array($c1,$c2), тогда $c1, $c2 - от какого и до какого значения меняется составляющая цвета пикселов, но пиксели будут чёрно-белыми Пример: array(250,0,250,0,50,50) - красная: от 250 до 0, зелёная: от 250 до 0, синяя не меняется (всегда 50)
$xfrom, $yfrom - координаты левого верхнего угла прямоугольника (относитеьно верхнего левого угла рисунка)
$xto, $yto - координаты правого нижнего угла прямоугольника (относитеьно верхнего левого угла рисунка). Если переданы отрицательные значения, прямоугольник не будет ограничен снизу и/или справа
$transparency - если не NULL, то задаёт прозрачность цветов пикселов
Функции построения графиков (все функции считают координату (0,0) нижним левым углом рисунка)
graph_set_center($xcenter=0, $ycenter=0) public, устанавливает центр графика функции
передаваемые параметры:
$xcenter, $ycenter - координаты центра
graph_set_scale($xscale=-1, $yscale=-1) public, устанавливает масштаб графика функции
передаваемые параметры:
$xscale, $yscale - масштаб по оси X и Y соответственно. Если передано отрицательное число, то масштаб будет установлен таким, как ячейка сетки (см.пример)
graph_set_bounds($bound=false, $xfrom=0, $yfrom=0, $xto=-1, $yto=-1) public, устанавливает границы графика функции. Границы устанавливаются относительно центра графика
передаваемые параметры:
$bound - если true, то будут использоваться установленные границы. Если false, график рисуется на всём изображении
$xfrom, $yfrom - координаты левой и нижней границ соответственно
$xto, $yto - координаты правой и верхней границ соответственно. Если переданы отрицательные значения, график будет неограничен справа/сверху
graph_set_precision($precision=1) public, устанавливает точность рисования графика функции
передаваемые параметры:
$precision - точность. Точность 1 соответствует одному вычислению Y(x) в одной ячейке масштаба. То есть если, например, масштаб установлен как graph_set_scale(10, 10), а точность установлена как graph_set_precision(0.5), то измерения Y(x) будут проводиться раз в 5 пикселей. Если точность установлена при таком же масштабе как graph_set_precision(2), то измерения Y(x) будут проводиться раз в 20 пикселей (т.е. менее точно)
graph($func='0', $handle_errors=true) public, рисует график функции
передаваемые параметры:
$func - выражение PHP, представляющее функцию. Например, 'pow($x,2)' или 'sin($x)/2'
$$handle_errors - если true, функция будет отслеживать такие ошибки, как деление на ноль, и предотвращать неправильное рисование графика. Рекомендуется включать
Общие функции построения столбчатых и круговых диаграмм (все функции считают координату (0,0) нижним левым углом рисунка)
diagram_set_add_signes($signes=array()) public, устанавливает пользовательские подписи для определённых столбцов/секторов диаграммы
передаваемые параметры:
$signes - массив подписей для соответствующих столбцов/секторов
diagram_set_center($x=0, $y=0) public, устанавливает координаты начала столбчатой/центра круговой диаграммы
передаваемые параметры:
$x, $y - координаты центра
diagram_set_colors($colors=array()) public, устанавливает пользовательские цвета столбцов/секторов диаграммы
передаваемые параметры:
$colors - массив цветов для соответствующих столбцов/секторов. Если будет передан массив вида array('rand',$r1,$r2, $g1,$g2, $b1,$b2), то все столбцы диаграммы будут иметь случайные цвета в диапазоне красной составляющей от $r1 до $r2, зелёной и синей составляющих от $g1 до $g2 и от $b1 до $b2 соответственно (см. пример). Если будет передан массив вида array('rand',$c1,$c2), то столбцы/секторы синхронно будут иметь все цвета в диапазоне от $c1 до $c2 (т.е. будут чёрно-белыми).
diagram_set_shadow($shadowx=0, $shadowy=0, $shadowtransparency=60, $shadowcolors=array()) public, устанавливает тень столбцов/секторов диаграммы
передаваемые параметры:
$shadowx, $shadowy - смещение тени по осям X и Y соответственно относительно центра/начала диаграммы
$shadowtransparency - уровень прозрачности тени
$shadowcolors - массив пользовательских цветов теней. Если цвета столбцов/секторов диаграммы не были заданы функцией diagram_set_colors, или же были заданы её как случайные, то цвета теней определяются автоматически. Если же они были заданы как определённые цвета, то для соответствия цветов теней и столбцов/секторов диаграммы необходимо передать в качестве этого параметра такое же массив, какой был передан в функцию diagram_set_colors.
diagram_set_sign_params($prefix='', $index='') public, устанавливает дополнительные настройки подписей
передаваемые параметры:
$prefix, $index - префикс и постфикс подписей соответственно, добавляются только к тем подписям, которые не были заданы пользователем принудительно функцией diagram_set_add_signes
diagram_set_sign_pos($txtx=5, $txty=5) public, устанавливает смещение подписей по оси x и y
передаваемые параметры:
$txtx, $txty - смещения подписей
diagram_set_signes($signed=true, $signcolor=NULL) public, устанавливает настройки подписей диаграммы
передаваемые параметры:
$signed - если true, то подписи будут добавлены
$signcolor - если не NULL, то цвета подписей будут выполнены цветом $signcolor
diagram_set_nums($divider=1,$hround=5) public, устанавливает округление и деление чисел подписей диаграмм
передаваемые параметры:
$divider - на это число будут делиться все числовые подписи диаграммы
$hround - до скольки знаков после запятой производить округление всех подписей диаграммы
Функции построения столбчатых диаграмм (все функции считают координату (0,0) нижним левым углом рисунка)
diagram_set_size($width=17, $step=3, $max_height=150) public, устанавливает размеры столбцов диаграммы
передаваемые параметры:
$width - ширина стобца диаграммы
$step - расстояние между стобцами
$max_height - максимальная высота столбца
column_diagram($values) public, рисует вертикальную столбчатую диаграмму вправо вверх от центра, установленного diagram_set_center
передаваемые параметры:
$values - массив значений для столбцов. Отрицательные значения поддерживаются
string_diagram($values) public, рисует горизонтальную столбчатую диаграмму вправо вверх от центра, установленного diagram_set_center
передаваемые параметры:
$values - массив значений для столбцов. Отрицательные значения поддерживаются
Функции построения круговых диаграмм (все функции считают координату (0,0) нижним левым углом рисунка)
make_circle_diagram($values) public, рисует круговую диаграмму
передаваемые параметры:
$values - массив значений для секторов. Отрицательные значения не поддерживаются
cdiagram_set_size($max_radius=100) public, устанавливает радиус круговой диаграммы
передаваемые параметры:
$max_radius - радиус круговой диаграммы
Функции построения графиков по точкам (все функции считают координату (0,0) нижним левым углом рисунка)
hgraph_add_to_legend($addline=true, $addpoint=true) public, добавляет последний нарисованный график в легенду (см. пример)
передаваемые параметры:
$addline - если true, перед текстом легенды будет добавлена линия с цветом линии графика
$addpoint - если true, перед текстом легенды будет добавлена текущая точка (см. пример)
hgraph_set_center($x=0, $y=0) public, устанавливает координаты начала графика
передаваемые параметры:
$x, $y - координаты начала графика
hgraph_set_fillcolor($fillcolor=NULL) public, устанавливает цвет заливки площади под графиком. Если передано значение NULL, график залит не будет
передаваемые параметры:
$fillcolor - цвет, созданный функцией rgb, или NULL
hgraph_set_params($maxheight=100, $interval=20, $hidelines=false) public, устанавливает некоторые настройки графика
передаваемые параметры:
$maxheight - максимальная высота графика
$interval - расстояние по горизонтали между точками графика
$hidelines - если true, линии графика нарисованы не будут
hgraph_set_signes($signed=true, $sx=0, $sy=0, $index='', $prefix='', $signcolor=NULL, $signs=array()) public, устанавливает настройки подписей точек графика
передаваемые параметры:
$signed - если true, к графику будут добавлены подписи
$sx, $sy - смещение подписей от точек по оси x и y соответственно
$index, $prefix - постфикс и префикс стандартных подписей
$signcolor - позволяет задать цвет подписей графика
$signs - массив с пользовательскими подписями точек графика
hgraph_set_nums($divider=1,$hround=5) public, устанавливает округление и деление чисел подписей графиков
передаваемые параметры:
$divider - на это число будут делиться все числовые подписи графика
$hround - до скольки знаков после запятой производить округление всех подписей графика
graph_horizontal($points) public, рисует график по точкам $points
передаваемые параметры:
$points - массив значений по оси Y относительно начала, установленного функцией hgraph_set_center, отрицательные значения поддерживаются
graph_points_horizontal($points, $signs=array()) в общем-то private, но если уж очень надо, то public:), вспомогательная функция класса, рисует график по точкам $points
передаваемые параметры:
$points - массив значений по осям X и Y вида array(array($X1,$Y1), array($X2,$Y2), ... ,array($XN,$YN))
$signs - массив подписей каждой точки
Общие функции построения легенд диаграмм и графиков (все функции считают координату (0,0) нижним левым углом рисунка)
legend_set_border($bordercolor=NULL, $borderwidth=1) public, устанавливает рамку легенды
передаваемые параметры:
$bordercolor - позволяет установить цвет рамки
$borderwidth - ширина рамки
legend_set_fields($fields=5) public, устанавливает отступы от краёв легенды
передаваемые параметры:
$fields - отступы
legend_set_fontcolor($fontcolor=NULL, $colortext=false) public, устанавливает цвет подписей легенды
передаваемые параметры:
$fontcolor - позволяет задать одинаковый цвет для всех подписей
$colortext - если true, то все подписи будут выполнены цветами, соответствующими цветам своих диаграмм/графиков
legend_set_fontname($fontname='') public, устанавливает шрифт названия легенды
передаваемые параметры:
$fontname - путь к файлу шрифта. Если передана пустая строка, то будет использоваться текущий шрифт
legend_set_name($name='', $size=-1, $fontcolor=NULL) public, устанавливает название легенды
передаваемые параметры:
$name - текст названия
$size - размер шрифта названия. Если передано отрицательное значение, то будет использоваться текущий размер
$fontcolor - позволяет задать цвет шрифта названия
legend_set_pos($x=0, $y=0) public, устанавливает положение легенды на рисунке (т.е. её левый верхний угол)
передаваемые параметры:
$x, $y - координаты левого верхнего угла легенды
legend_set_strinterval($strinterval=2) public, устанавливает интервал между строками в легенде
передаваемые параметры:
$strinterval - интервал
legend_set_texts($texts=array()) public, устанавливает подписи легенды
передаваемые параметры:
$texts - массив текстов. Если необходимо не создавать подпись, например, какого-либо столбца диаграммы, запишите в массив null в нужную позицию, т.е. array('подпись1', null, 'ещё подпись'...)
Функции построения легенд диаграмм (все функции считают координату (0,0) нижним левым углом рисунка)
dlegend_set_boxes($colorboxes=false, $type=0, $boxbordercolor=NULL) public, устанавливает настройки меток перед подписями легенды
передаваемые параметры:
$colorboxes - если true, метки будут добавлены перед подписями
$type - тип меток: 0 - квадратные, 1 - круглые
$boxbordercolor - если не NULL, то к меткам будут добавлены рамки цвета $boxbordercolor
make_diagram_legend() public, создаёт легенду
Функции построения легенд графиков по точкам (все функции считают координату (0,0) нижним левым углом рисунка)
hlegend_set_linelen($linelen=10) public, устанавливает длину добавляемых к подписям легенды линий
передаваемые параметры:
$linelen - длина линий
hlegent_destroy() public, уничтожает легенду графиков. Должна вызываться перед созданием легенды новой группы графиков
make_hgraph_legend() public, создаёт легенду
Функции построения координатных осей (все функции считают координату (0,0) нижним левым углом рисунка)
axis_set_arrows($backarrow=false, $frontarrow=true, $arrowx=12, $arrowy=3) public, устанавливает настройки стрелок координатной оси
передаваемые параметры:
$backarrow - если true, стрелка будет добавлена снизу/слева вертикальной/горизонтальной оси
$frontarrow - если true, стрелка будет добавлена сверху/справа вертикальной/горизонтальной оси
$arrowx, $arrowy - длина и высота/2 стрелок соответственно
axis_set_center($xcenter=0, $ycenter=0) public, устанавливает координату (0,0) координатной оси
передаваемые параметры:
$xcenter, $ycenter - координаты по оси x и y соответственно
axis_set_length($backlength=-1, $frontlength=-1) public, устанавливает длину координатной оси
передаваемые параметры:
$backlength - длина нижней/левой части вертикальной/горизонтальной оси. Если передано отрицательное значение, ось будет доходить до границы рисунка
$frontlength - длина верхней/правой части вертикальной/горизонтальной оси. Если передано отрицательное значение, ось будет доходить до границы рисунка
axis_set_rules($rules1=false, $rules2=false, $linterval=5, $binterval=20, $little=3, $big=8) public, устанавливает настройки линейки
передаваемые параметры:
$rules1 - если true, линейка будет добавлена снизу/слева вертикальной/горизонтальной оси
$rules2 - если true, стрелка будет добавлена сверху/справа вертикальной/горизонтальной оси
$linterval - интервал между маленькими делениями линейки
$binterval - интервал между большими делениями линейки
$little, $big - высота маленького и большого деления соответственно
axis_set_sign_color($signcolor=NULL) public, устанавливает цвет подписей
передаваемые параметры:
$signcolor - цвет подписей или NULL (в этом случае используется текущий цвет)
axis_set_sign_pos($signx=4, $signy=12) public, устанавливает смещение подписей относительно оси
передаваемые параметры:
$signx - горизонтальное смещение подписей вертикальной оси
$signy - вертикальное смещение подписей горизонтальной оси
axis_set_round($rn=-1) public, позволяет указать, на сколько знаков после запятой производить округление подписей координатных осей
передаваемые параметры:
$rn - до скольки знаков после запятой производить округление. Если -1, то округление не будет производиться.
axis_set_signes($makesign=false, $signnum=1, $signstep=1) public, устанавливает настройки подписей
передаваемые параметры:
$makesign - если true, подписи будут созданы
$signnum - шаг цифры подписей
$signstep - шаг подписей в пикселах от центра оси
axis_set_start($signfrom=0) public, устанавливает стартовый номер подписей
передаваемые параметры:
$signfrom - начальный номер подписей от центра
axis_set_symbols($symbols=array()) public, устанавливает пользовательские подписи
передаваемые параметры:
$symbols - массив пользовательских подписей оси
make_axis($type=0) public, рисует координатную ось
передаваемые параметры:
$type - тип оси: 0 - горизонтальная, 1 - вертикальная
Функции построения сетки (все функции считают координату (0,0) верхним левым углом рисунка)
net_set_steps($xstep=10, $ystep=10) public, устанавливает шаг сетки
передаваемые параметры:
$xstep, $ystep - шаг сетки по оси x и y соответственно
image_net($xfrom=0, $yfrom=0, $xto=-1, $yto=-1) public, рисует сетку
передаваемые параметры:
$xfrom, $yfrom - координаты начала сетки (верхний левый угол)
$xto, $yto - координаты конца сетки (нижний правый угол) Если переданы отрицательные значения, то сетка в этих направлениях ограничена не будет
Функции построения ступенчатых графиков (все функции считают координату (0,0) нижним левым углом рисунка)
sgraph_set_values($values=array()) public, устанавливает значения для построения ступенчатого графика
передаваемые параметры:
$values - массив передаваемых значений. Должен иметь следующий вид: array(относительная_высота,длина_ступени,...)
sgraph_set_arrows($backarrow=true,$frontarrow=false,$arrowx=12,$arrowy=3) public, задаёт рисование стрелок у ступеней
передаваемые параметры:
$backarrow - если true, стрелка будет добавлена слева каждой ступени
$frontarrow - если true, стрелка будет добавлена справа каждой ступени
$arrowx, $arrowy - длина и высота/2 стрелок соответственно
sgraph_set_maxheight($maxheight=150) public, устанавливает максимальную высоту графика
передаваемые параметры:
$maxheight - максимальная высота ступенчатого графика
sgraph_set_center($x=0,$y=0) public, устанавливает координаты начала графика
передаваемые параметры:
$x,$y - координаты начала графика
sgraph_set_fill($transparency=NULL,$r=-1,$g=-1,$b=-1) public, устанавливает заливку графика под ступенями
передаваемые параметры:
$transparency - NULL или значение прозрачности цвета заливки графика (если указан NULL, то заливка не будет выполняться)
$r,$g,$b - значения красной, зелёной и синей составляющей цвета заливки (только если $transparency не NULL). Эти параметры можно не задавать, тогда заливка будет сделана текущим цветом.
make_sgraph() public, рисует ступенчатый график

Краткое описание класса


Пример работы с классом

Если выполнить код, расположенный ниже, то получится примерно вот такой рисунок (примерно - потому что диаграмы окрашены в случайные цвета).

После кода указаны некоторые дополнительные пояснения.
<?php
require_once("dxgraph.php"); //подключаем файл с классом

$img=new dxgraph(600,500,1); //создаём новое изображение true color 600x500

$img->set_color(10,10,10); //устанавливаем почти чёрный цвет

$gray=$img->rgb(100,100,100); //создаём серый цвет

//далее: устанавливаем текущий стиль рисования: 5 пикселей подряд - серые, затем 3 подряд - прозрачные. Получится такая штрихпунктирная линия
$img->image_set_style(array($gray,$gray,$gray,$gray,$gray,IMG_COLOR_TRANSPARENT,IMG_COLOR_TRANSPARENT,IMG_COLOR_TRANSPARENT));

$img->image_grad(0,array(250,0,250,0,50,50),0,0,-1,200); //делаем градиент (см. описание функции)

$img->set_drawing(0,0,1); //устанавливаем рисование с использованием стиля, который только что создали
$img->image_net(0,0,-1,200); //делаем сетку начиная от левого верхнего угла (0,0), неограниченную по оси X и до координаты 200 по оси Y. Сетка будет нарисована с использованием стиля
$img->set_drawing(); //восстанавливаем обычное рисование

$blue=$img->rgb(100,150,250); //создаём синий цвет
$red=$img->rgb(255,50,50); //создаём красный цвет
$yellow=$img->rgb(255,255,155); //светло-жёлтый цвет

$img->set_font(8,0,'arial.ttf'); //устанавливаем шрифт - размер 8, наклон 0 градусов, Arial (arial.ttf лежит в папке с проектом)

$img->image_set_point('s.png',0,0,0); //устанавливаем точку для диаграммы - это смайлик, тип png, для диаграммы, нулевое смещение по оси x, авто по оси y

$img->set_drawing(1); //устанавливаем рисование с заливкой

$img->diagram_set_center(100,320); //устанавливаем центр диаграммы (от левого нижнего угла)
$img->diagram_set_signes(true,$blue); //устанавливаем подписи и их цвет
$img->diagram_set_sign_pos(15); //смещение подписей по оси x - 15 пикселей от диаграммы
$img->diagram_set_colors(array('rand',55,255,55,255,55,255)); //ставим случайные цвета в диапазоне значений r,g,b от 55 до 255
$img->diagram_set_shadow(3,-3);//установим небольшую тень
$img->diagram_set_sign_params('','шт.'); //постфикс всех стандартных (не пользовательских) подписей - "шт."
$img->diagram_set_add_signes(array('первый столбик',null,'третий')); //для первого столбца ставим подпись "первый столбик", для второго останется стандартная, для третьего ставим подпись "третий"

$img->string_diagram(array(1,5,3,-2,4,-1,0,2)); //рисуем горизонтальную диаграмму по значениям в массиве

$img->set_color(0,100,150); //установим сине-зелёный цвет

//далее нарисуем горизонтальную координатную ось
$img->axis_set_center(100,320); //установим центр координатных осей (от левого нижнего угла)
$img->axis_set_length(-1,155); //длина оси - слева от центра неограничена, справа - 155 пикселей
$img->axis_set_signes(true,1,20); //установим подписи, шаг 1 (это необязательно, далее ставим свои), между ними будет по 20 пикселов
$img->axis_set_sign_color($blue); //ставим цвет подписей
$img->axis_set_symbols(array('а','б','в','г','д','е','ж','з')); //ставим свои подписи
$img->axis_set_rules(true,true,5,20); //разлинуем ось сверху и снизу, между небольшими штрихами по 5 пикселей, каждые 20 пикселей - большой штрих
$img->make_axis(0); //рисуем горизонтальную ось

//далее - рисуем вертикальную ось
$img->axis_set_rules(); //уберём разлиновку
$img->axis_set_length(0,-1); //длина оси - снизу=0, сверху - неограничена
$img->axis_set_signes(true,3,20); //установим подписи, шаг 3 (т.е. будут нанесены цифры 0,3,6,9...), между ними будет по 20 пикселов
$img->axis_set_sign_color($red); //ставим цвет подписей
$img->axis_set_sign_pos(-12,0); //смещение подписей влево по оси x на 12 пикселов
$img->axis_set_symbols(); //уберём свои подписи, будут стандартные
$img->make_axis(1); //рисуем вертикальную ось

$black=$img->rgb(0,0,0); //чёрный цвет
$aqua=$img->rgb(200,200,255); //светло-синий

$img->set_color(255,255,150); //ставим текущим светло-жёлтый цвет

//нарисуем легенду для только что нарисованной диаграммы
$img->legend_set_pos(290,480); //установим положение её верхнего левого угла
$img->legend_set_texts(array("1 смайлег\n(гыгы)",'аж 5!',"3 смайла",'-2 :)','четыре','-1!','нуль','два')); //ставим подписи для всех столбцов диаграммы (их 8). Многострочные подписи поддерживаются!
$img->legend_set_fields(5); //ставим небольшой отступ от краёв легенды
$img->legend_set_border($aqua,2); //сделаем рамку светло-синего цвета, толщиной 2 пиксела
$img->legend_set_fontcolor($blue); //установим цвет шрифта
$img->legend_set_name("Тестовая\nлегенда",10,$black); //установим имя легенды 10-м шрифтом чёрного цвета, и здесь многострочные имена работают
$img->legend_set_fontname('comic.ttf'); //точнее, Comic Sans MS, опять-таки comic.ttf лежит в папке с проектом
$img->dlegend_set_boxes(true,1,$black); //установим цветные маркеры (кружочки:)), с рамками чёрного цвета
$img->make_diagram_legend(); //всё, изображаем легенду

$white=$img->rgb(255,255,255); //белый цвет
$sred=$img->rgb(255,55,55); //ещё красный

$img->set_color(0,0,30); //установим тёмно-синий цвет
$params=$img->get_image_params(); //для того, чтоб было понятно назначение функции:) получим параметры рисунка
$img->image_rectangle(0,200,$params[0],$params[1]); //рисуем прямоугольник (с заливкой, помните set_drawing(1)?) от (0,200) до (ширина,высота). Координаты тут считаются от левого верхнего угла
//таким образом, мы сделали заливку другого цвета нижней части рисунка

$img->image_set_style(array($white,$white,$white,$white,$white,$sred,$blue,$sred,$blue,$sred)); //установим новый стиль рисования - 5 белых, красный, синий, красный, синий, красный пиксели

$img->set_drawing(0,0,1); //установим рисование с использованием стиля
$img->image_net(0,200,-1,-1); //рисуем сетку в нижней части рисунка
$img->set_drawing();  //восстанавливаем обычное рисование

//далее снова рисуем горизонтальную координатную ось
$img->set_color(255,255,150); //установим светло-жёлтый цвет
$img->axis_set_center(100,60); //установим новый центр оси
$img->axis_set_length(-1,255); //длина оси - слевы неограничена, справа - 255 пикселов
$img->axis_set_signes(true,1,20); //установим подписи, шаг 1 (т.е. 0,1,2,3,4...), каждые 20 пикселов
$img->axis_set_sign_color($blue); //установим цвет подписей
$img->axis_set_sign_pos(-18,15); //смещение подписей для горизонтальной оси по оси Y -18, для вертикальной оси по оси X 15
$img->make_axis(0); //рисуем горизонтальную ось

//далее снова рисуем вертикальную координатную ось
$img->axis_set_length(50,220); //длина - снизу50 пикселов, сверху - 220
$img->axis_set_signes(true,20,20); //подписи: шаг - 20, каждые 20 пикселов
$img->axis_set_sign_color($red); //установим цвет подписей
$img->make_axis(1); //рисуем вертикальную ось

//сейчас будем рисовать графики по точкам
$img->image_set_point(null,0,1); //установим точку графика - null значит прежний смайлик, не меняем, тип png, но для графика
$img->set_drawing(1); //ставим рисование с заливкой

$color=$img->rgb(0,0,250,50); //синий прозрачный цвет

$img->hgraph_set_center(20,60); //ставим начало графика от носительно левого нижнего угла рисунка
$img->hgraph_set_signes(true,-2,12,'','',$white); //установим подписи графика - смещения по осям X и Y равны -2 и 12, без префиксов и постфиксов, белые
$img->hgraph_set_fillcolor($color); //ставим цвет заливки

$img->set_color(255,0,200); //установим новый цвет

$img->graph_horizontal(array(1,5,4,-1,-0.5,5,3,0,1,1,4,3,1)); //рисуем график по точкам

//теперь немного настроим будущую легенду
$img->legend_set_strinterval(1); //ставим небольшой интервал между подписями
$img->legend_set_fontcolor(NULL,1); //уберём фиксированный цвет подписей легенды и сделаем, чтобы они были соответствующих графикам цветов
$img->legend_set_pos(270,290); //новая позиция легенды
$img->hlegend_set_linelen(31); //а вот теперь добавим к легенде перед подписями куски линий такого же цвета, как графики, длиной 31 пиксел

$img->hgraph_add_to_legend(1,1); //наконец, добавим последний нарисованный график в легенду
//ну одного-то нам будет мало:) Нарисуем ещё один

$img->image_destroy_point(); //удалим старую точку графика
$img->image_set_point('x.png',0,1); //ставим новую точку для графиков

$img->set_font(12,0,'arial.ttf'); //немного увеличим шрифт до 12го размера

$img->hgraph_set_fillcolor($img->rgb(255,0,0,50)); //быстро ставим красный полупрозрачный цвет как заливку графика

$img->set_color(255,255,0); //ставим жёлтый цвет текущим

$img->graph_horizontal(array(0,3,6,-2,-2,4,2,1,0,0,1,2,3)); //рисуем второй график по точкам

$img->hgraph_add_to_legend(1,1); // и его тоже добавляем в легенду

//теперь можно и нарисовать её
$img->set_color(50,50,50); //ставим текущим тёмно-серый цвет

$img->legend_set_name("Тестовая\nлегенда 2",10,$aqua); //ставим заголовок легенды 10-м шрифтом

$img->legend_set_texts(array("График\nпервый","вторая\nкривая:)")); //ставим подписи легенды

$img->make_hgraph_legend(); //и рисуем её

//теперь научимся рисовать круговые диаграммы
$img->diagram_set_center(500,400); //установим её центр
$img->diagram_set_add_signes(array('test',null,'sign')); //подпишем первый и третий сектора как 'test' и 'sign', остальные будут подписаны цифрами, стандартно
$img->diagram_set_sign_pos(3,-3); //установим новое смещение подписей диаграммы: 3 по оси X, -3 по оси Y

$img->set_font(10,0,'arial.ttf'); //меняем размер шрифта до десяти

$img->set_color(100,150,255); //установим новый цвет

$img->make_circle_diagram(array(3,6,2,5,4,0.5,3)); //рисуем круговую диаграмму по значениям

//а теперь неплохо бы и легенду для неё сделать
$img->set_color(50,50,50); //ставим новый цвет

$img->legend_set_pos(450,320); //и новую позицию легенды
$img->legend_set_name("Тестовая\nлегенда 3",12,$aqua); //новое название легенды 12-м шрифтом светло-синим цветом
$img->legend_set_texts(array("цвет 1","график","клёвый","testing","php rulez","legend","dx")); //подписи легенды, в конце массива для 1-го сектора диаграммы, в начале - для последнего
$img->legend_set_border($red,3); //делаем красную рамку толщиной 3 пиксела для легенды
$img->dlegend_set_boxes(true,0); //ставим маркеры - квадраты без рамок

$img->make_diagram_legend(); //рисуем легенду

//далее займёмся рисованием графиков функций, но сначала приготовим координатные оси
$yellow=$img->rgb(255,255,0); //создадим жёлтый цвет

$img->set_line_thickness(2); //сделаем толщину линий 2 пиксела

$img->set_color(200,200,255); //установим текущим светло-синий цвет

//рисуем горизонтальную ось...
$img->axis_set_center(480,20); //ставим центр для осей
$img->axis_set_length(120,110); //установим длину оси: слева 120, справа 110 пикселов
$img->axis_set_signes(true,1,20); //установим подписи - шаг 1, раз в 20 пикселов
$img->axis_set_sign_color($yellow); //сделаем подписи жёлтыми
$img->axis_set_sign_pos(-12,15); //смещение подписей для горизонтальной оси по оси Y -12, для вертикальной оси по оси X 15
$img->make_axis(0); //рисуем горизонтальную ось

//а теперь сделаем вертикальную
$img->axis_set_length(0,150); //установим её длину: снизу 0, сверху 150 пикселов
$img->make_axis(1); //рисуем вертикальную ось

$img->set_line_thickness(1); //сделаем толщину линий 1 пиксел

$img->set_color(200,255,200); //установим светло-зелёный цвет

//сейчас будем рисовать графики
$img->graph_set_center(480,20); //установим центр, как у координатных осей
$img->graph_set_scale(); //установим масштаб по осям: парамтры не переданы, значит, масштаб установится как у сетки (20:1 по оси X, 20:1 по оси Y)
$img->graph_set_precision(0.05); //ставим очень большую точность (вычисления значения функции будут вестись в каждом пикселе, т.к. 0.05x20=1). Точнее некуда:)
$img->graph_set_bounds(true,-120,-40,100,-1); //установим графику границы: от (-120,-40) до (100,правая граница рисунка,так как передано отрицательное значение). Границы ставятся относительно центра графика

$img->graph('sin($x)'); //рисуем синусоиду. Прилично времени занимает, но зато идеально нарисовано (точность очень высокая)

$img->graph_set_bounds(true,-100,-1,100,120); //установим новые границы: от (-100,-1) до (100,200). Заметьте, передача отрицательных значений во втором и третьем параметрах привела к ограничению графика. А если бы отрицательные значения были переданы в четвёртом или пятом, как сделано выше, то график по данному направлению был бы ограничен только краем рисунка

$img->graph('pow($x,2)'); //рисуем квадратичную параболу

//последние штрихи...
$img->set_drawing(); //установим обычное рисование

$img->set_color(200,200,255); //ставим светло-синий цвет

$img->image_make_border(); //рисуем рамку

/*
$img->set_drawing(1);
$img->set_color(255,255,255,80);
$img->image_rectangle(0,0,600,500);
*/

//$img->random_pixels(array(100,250,100,250,100,250),0,0,100,100);

$img->image_output(); //выводим изображение в формате png в браузер

$img->destroy_all(); //освобождаем память, хотя это необязательно, конец скрипта и так
unset($img);

?>

Итак, небольшие пояснения:

©