Частый посетитель
![](./im/images/pips5.gif)
Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012
Помог: 2 раз(а)
[+][+][+][+][+]
![](./templates/InvisionExBB/im/spacer.gif)
|
Друзья, Кто нибудь знает хороший скрипт построения графика по координатам из базы по осям x y ..,нашел один скрипт Но вот вопрос как его переделать чтобы данные брались из базы,
PHP:
скопировать код в буфер обмена
<?PHP header("Content-type: image/png"); function draw_axises($im_width,$im_heignt) { global $im, $black, $l_grey, $x0, $y0, $maxX, $maxY; $x0=25.0; //начало оси координат по X $y0=20.0; //начало оси координат по Y $maxX=$im_width-$x0; //максимальное значение оси координат по X в пикселах $maxY=$im_heignt-$y0; //максимальное значение оси координат по Y в пикселах imageline($im, $x0, $maxY, $maxX, $maxY, $black); //рисуем ось X imageline($im, $x0, $y0, $x0, $maxY, $black); //рисуем ось Y //рисуем стрелку на оси X $xArrow[0]=$maxX-6; $xArrow[1]=$maxY-2; $xArrow[2]=$maxX; $xArrow[3]=$maxY; $xArrow[4]=$maxX-6; $xArrow[5]=$maxY+2; //рисуем стрелку на оси Y $yArrow[0]=$x0-2; $yArrow[1]=$y0+6; $yArrow[2]=$x0; $yArrow[3]=$y0; $yArrow[4]=$x0+2; $yArrow[5]=$y0+6; } function draw_grid($xStep,$yStep,$xCoef,$yCoef) { global $im,$black,$l_grey,$x0,$y0,$maxX,$maxY; $xSteps=($maxX-$x0)/$xStep-1; //определяем количество шагов по оси X $ySteps=($maxY-$y0)/$yStep-1; //определяем количество шагов по оси Y for($i=1;$i<$xSteps+1;$i++) //выводим сетку по оси X { imageline($im, $x0+$xStep*$i, $y0, $x0+$xStep*$i, $maxY-1 , $l_grey); //при необходимости выводим значения линий сетки по оси X ImageString($im, 1 , ($x0+$xStep*$i)-1 , $maxY+2 , $i*$xCoef, $black); } for($i=1;$i<$ySteps+1;$i++) { imageline($im, $x0+1 , $maxY-$yStep*$i, $maxX, $maxY-$yStep*$i, $l_grey); //при необходимости выводим значения линий сетки по оси Y ImageString($im, 1 , 0 , ($maxY-$yStep*$i)-3 , $i*$yCoef, $black); } } function draw_data($data_x,$data_y,$points_count,$color) { global $im,$x0,$y0,$maxY,$scaleX,$scaleY; for($i=1;$i<$points_count;$i++) { //рисуем линейный график по точкам из массивов данных imageline($im, $x0+$data_x[$i-1 ]*$scaleX, $maxY-$data_y[$i-1 ]*$scaleY, $x0+$data_x[$i]*$scaleX, $maxY-$data_y[$i]*$scaleY, $color); } } //создаем рисунок шириной 500 и высотой 400 пикселов draw_axises(500,400); //рисуем оси координат //задаем массивы данных графиков //объединяем данные из массивов данных для вычисления масштаба //получаем максимальные значения элементов для каждого массива //вычисляем масштаб преобразования данных в координаты рабочей области $scaleX=($maxX-$x0)/$maxXVal; $scaleY=($maxY-$y0)/$maxYVal; //задаем шаг для координатной сетки в пикселах $xStep=30; $yStep=30; //рисуем координатную сетку draw_grid ($xStep,$yStep, round($xStep/$scaleX,1 ), round($yStep/$scaleY,1 ), true); draw_data($x1,$y1,20,$green); //рисуем первый график draw_data($x2,$y2,20,$blue); //рисуем второй график ?>
(Отредактировано автором: 04 Марта, 2013 - 22:32:32)
|