Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: построение графика по координатам из базы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
imediasun
Отправлено: 04 Марта, 2013 - 18:58:22
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


Друзья, Кто нибудь знает хороший скрипт построения графика по координатам из базы по осям x y ..,нашел один скрипт Но вот вопрос как его переделать чтобы данные брались из базы,
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. header("Content-type: image/png");
  4. function draw_axises($im_width,$im_heignt)
  5. {
  6.         global $im, $black, $l_grey, $x0, $y0, $maxX, $maxY;
  7.         $x0=25.0; //начало оси координат по X
  8.         $y0=20.0; //начало оси координат по Y
  9.         $maxX=$im_width-$x0;  //максимальное значение оси координат по X в пикселах
  10.         $maxY=$im_heignt-$y0; //максимальное значение оси координат по Y в пикселах
  11.         imageline($im, $x0, $maxY, $maxX, $maxY, $black); //рисуем ось X
  12.         imageline($im, $x0, $y0, $x0, $maxY, $black);     //рисуем ось Y
  13.  
  14.         //рисуем стрелку на оси X
  15.         $xArrow[0]=$maxX-6; $xArrow[1]=$maxY-2;
  16.         $xArrow[2]=$maxX; $xArrow[3]=$maxY;
  17.         $xArrow[4]=$maxX-6; $xArrow[5]=$maxY+2;
  18.         imagefilledpolygon($im, $xArrow, 3, $black);
  19.         //рисуем стрелку на оси Y
  20.         $yArrow[0]=$x0-2; $yArrow[1]=$y0+6;
  21.         $yArrow[2]=$x0; $yArrow[3]=$y0;
  22.         $yArrow[4]=$x0+2; $yArrow[5]=$y0+6;
  23.         imagefilledpolygon($im, $yArrow, 3, $black);
  24. }
  25. function draw_grid($xStep,$yStep,$xCoef,$yCoef)
  26. {
  27.         global $im,$black,$l_grey,$x0,$y0,$maxX,$maxY;
  28.         $xSteps=($maxX-$x0)/$xStep-1; //определяем количество шагов по оси X
  29.         $ySteps=($maxY-$y0)/$yStep-1; //определяем количество шагов по оси Y
  30.  
  31.         for($i=1;$i<$xSteps+1;$i++)   //выводим сетку по оси X
  32.                 {
  33.                 imageline($im, $x0+$xStep*$i, $y0, $x0+$xStep*$i, $maxY-1, $l_grey);
  34.                 //при необходимости выводим значения линий сетки по оси X
  35.                 ImageString($im, 1, ($x0+$xStep*$i)-1, $maxY+2, $i*$xCoef, $black);
  36.  
  37.                 }
  38.         for($i=1;$i<$ySteps+1;$i++)
  39.                 {
  40.                 imageline($im, $x0+1, $maxY-$yStep*$i, $maxX, $maxY-$yStep*$i, $l_grey);
  41.                 //при необходимости выводим значения линий сетки по оси Y
  42.                 ImageString($im, 1, 0, ($maxY-$yStep*$i)-3, $i*$yCoef, $black);
  43.                 }
  44. }
  45. function draw_data($data_x,$data_y,$points_count,$color)
  46. {
  47.         global $im,$x0,$y0,$maxY,$scaleX,$scaleY;
  48.         for($i=1;$i<$points_count;$i++)
  49.                 {
  50.                 //рисуем линейный график по точкам из массивов данных
  51.                 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);
  52.                 }
  53. }
  54.         //создаем рисунок шириной 500 и высотой 400 пикселов
  55.         $im = @ImageCreate(500, 400);
  56.         $white = ImageColorAllocate ($im, 255, 255, 255);
  57.         $black = ImageColorAllocate ($im, 0, 0, 0);
  58.         $red = ImageColorAllocate ($im, 255, 0, 0);
  59.         $green = ImageColorAllocate ($im, 0, 255, 0);
  60.         $blue = ImageColorAllocate ($im, 0, 0, 255);
  61.         $yellow = ImageColorAllocate ($im, 255, 255, 0);
  62.         $magenta = ImageColorAllocate ($im, 255, 0, 255);
  63.         $cyan = ImageColorAllocate ($im, 0, 255, 255);
  64.         $l_grey = ImageColorAllocate ($im, 200, 200, 200);
  65.  
  66.         draw_axises(500,400); //рисуем оси координат
  67.         //задаем массивы данных графиков
  68.         $DATA_X=array(8,2,4,5);
  69.         $DATA_Y=array(2,3,4,5);
  70.  
  71.         //объединяем данные из массивов данных для вычисления масштаба
  72.         $x=array_merge($x1,$x2);
  73.         $y=array_merge($y1,$y2);
  74.         //получаем максимальные значения элементов для каждого массива
  75.         $maxXVal=max($x);
  76.         $maxYVal=max($y);
  77.         //вычисляем масштаб преобразования данных в координаты рабочей области
  78.         $scaleX=($maxX-$x0)/$maxXVal;
  79.         $scaleY=($maxY-$y0)/$maxYVal;
  80.         //задаем шаг для координатной сетки в пикселах
  81.         $xStep=30;
  82.         $yStep=30;
  83.         //рисуем координатную сетку
  84.         draw_grid($xStep,$yStep, round($xStep/$scaleX,1), round($yStep/$scaleY,1), true);
  85.         draw_data($x1,$y1,20,$green); //рисуем первый график
  86.         draw_data($x2,$y2,20,$blue); //рисуем второй график
  87.         ImagePNG($im); //выводим рисунок
  88.         imagedestroy($im); //освобождаем занимаемую рисунком память
  89. ?>
  90.  

(Отредактировано автором: 04 Марта, 2013 - 22:32:32)

 
 Top
imediasun
Отправлено: 04 Марта, 2013 - 22:34:08
Post Id


Частый посетитель


Покинул форум
Сообщений всего: 605
Дата рег-ции: Авг. 2012  


Помог: 2 раз(а)

[+][+][+][+][+]


теперь построение графика строится на данных из этих массивов
PHP:
скопировать код в буфер обмена
  1.  
  2. $DATA_X=array(8,2,4,5);
  3. $DATA_Y=array(2,3,4,5);
  4.  

Как вместо них подставить вывод значений полей X и Y из базы
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB