И вот \"цветастая, красивая\" объёмная круговая диаграмма. Если раскометировать пару тройку строк, то будем с легендой.
<?
// $im - идентификатор изображения
// $VALUES - массив со значениями
// $LEGEND - массив с подписями
function Diagramm($im,$VALUES,$LEGEND) {
GLOBAL $COLORS,$SHADOWS;
$black=ImageColorAllocate($im,0,0,0);
// Получим размеры изображения
$W=ImageSX($im);
$H=ImageSY($im);
// Посчитаем количество пунктов, от этого зависит высота легенды
$legend_count=count($LEGEND);
// Посчитаем максимальную длину пункта, от этого зависит ширина легенды
$max_length=0;
// foreach($LEGEND as $v) if ($max_length<strlen($v)) $max_length=strlen($v);
// Номер шрифта, котором мы будем выводить легенду
$FONT=2;
$font_w=ImageFontWidth($FONT);
$font_h=ImageFontHeight($FONT);
// Вывод прямоугольника - границы легенды ----------------------------
// Расчет координат центра эллипса
$circle_x=($diametr/2)+10;
$circle_y=$H/2-10;
// Поправка диаметра, если эллипс не помещается по высоте
if ($diametr>($H*2)-10-10) $diametr=($H*2)-20-20-40;
// Вывод тени
for ($j=20;$j>0;$j--)
for ($i=0;$i<count($anglesum)-1;$i++)
ImageFilledArc($im,$circle_x,$circle_y+$j,
$diametr,$diametr/2,
$anglesum[$i],$anglesum[$i+1],
$SHADOWS[$i],IMG_ARC_PIE);
// Вывод круговой диаграммы
for ($i=0;$i<count($anglesum)-1;$i++)
ImageFilledArc($im,$circle_x,$circle_y,
$diametr,$diametr/2,
$anglesum[$i],$anglesum[$i+1],
$COLORS[$i],IMG_ARC_PIE);
}
$an=0;
$an1=1;
$an2=2;
$an3=3;
$an4=4;
$an5=5;
$an6=6;
// Зададим значение и подписи
$VALUES=Array($an,$an1,$an2,$an3,$an4,$an5,$an6);
$LEGEND=Array("Пон","Вт","Ср","Чет","Пят","Суб","AS");
// Создадим изображения
header("Content-Type: image/png");
$im=ImageCreate(300,300); // размеры
// Зададим цвет фона.
$bgcolor=ImageColorAllocate($im,255,255,255);