Код: Выделить всё
define('GRAPH_WIDTH', 400); // ширина картинки
define('GRAPH_HEIGHT', 300); // высота картинки
define('GRAPH_OFFSET_TOP', 40); // отступ сверху
define('GRAPH_OFFSET_LEFT', 40); // отступ слева
define('GRAPH_OFFSET_RIGHT', 5); // отстут справа
define('GRAPH_OFFSET_BOTTOM', 30);
define('FONT_NAME', '/_font/sansation_regular.ttf'); // Имя шрифта
define('FONT_SIZE', 6); // Размер шрифта
$colors = array(0xFFA500);
$rs = mysql_query ("SELECT * FROM table WHERE id='58' AND date>".strtotime('-1 month')." ORDER BY date ASC");
while ($data2=mysql_fetch_array($rs))
{
$Data[$data2['date']] = $data2['chislo'];
}
// Считаем ширину столбцов
$col_width = (GRAPH_WIDTH - GRAPH_OFFSET_LEFT - GRAPH_OFFSET_RIGHT) / count($Data);
// Считаем высоту столбца, соответствующего максимальному значению
$col_maxheight = (GRAPH_HEIGHT - GRAPH_OFFSET_TOP - GRAPH_OFFSET_BOTTOM);
// Ищем максимальное значение в массиве, соответствующее столбцу максимальной высоты
$max_value = max($Data);
$image = imagecreatetruecolor(GRAPH_WIDTH,GRAPH_HEIGHT) // создаем изображение...
or die('Cannot create image'); // ...или прерываем работу скрипта в случае ошибки
imagefill($image, 0, 0, 0x000000); // белый фон
// рисуем столбцы
$x = GRAPH_OFFSET_LEFT;
$y = GRAPH_OFFSET_TOP + $col_maxheight;
$i = 0;
foreach($Data as $name => $value) {
imagefilledrectangle( // рисуем сплошной прямоугольник
$image,
$x,
$y - round($value*$col_maxheight/$max_value),
$x + $col_width - 1,
$y,
$colors[$i++%count($colors)]
);
// Выводим текст:
$text = date("D",$name);
// .. расчет координат...
$coord = imagettfbbox(FONT_SIZE,0,FONT_NAME,$text);
$text_x = $x + ($col_width - $coord[2] - $coord[0]) / 2;
$text_y = GRAPH_HEIGHT - 10;
// .. и вывод текста
imagettftext($image,FONT_SIZE,0,$text_x,$text_y,0xCCCCCC,FONT_NAME,$text);
$x += $col_width;
}
// рисуем координатную ось
imageline($image, GRAPH_OFFSET_LEFT - 5, GRAPH_OFFSET_TOP,
GRAPH_OFFSET_LEFT - 5, $y, 0xCCCCCC);
for($value=0; $value<=$max_value; $value++) {
imageline($image, GRAPH_OFFSET_LEFT - 7, $Y = $y - round($value*$col_maxheight/$max_value),
GRAPH_OFFSET_LEFT - 5, $Y, 0xCCCCCC);
imagestring($image, 1, GRAPH_OFFSET_LEFT / 2, $Y - 4, $value, 0xCCCCCC);
}
imagepng($image);
header('Content-type: image/png');
imagedestroy($image);
Как выглядет сейчас http://imageshack.us/photo/my-images/35/crtstatp.png/
тоесть сейчас если в базе имеются одинаковые дни то они тупа дублируються по очереди!
а надо чтобы нижняя графа имела следующий вид Tue,Fri,Sat, San,Mon,Wed,Thu
тоесть дни недели, и если $text = 'Tue'; то все значения Tue подставляються в графу Tue а не дублируються по очереди!)