Ver Mensaje Individual
  #18 (permalink)  
Antiguo 22/08/2013, 22:39
Montes28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: como integrar laravel 4 y librerias para graficar series de tiempo

eternoaprendiz gracias por responder , hice lo que me indicas pero no logro que me funcione. que estoy haciendo mal?

mi objetivo: en una vista(pagina) mostrar el utimo registro que se inserto a la base de datos y 3 graficas

este es mi codigo

Modelo Anemometro.php
Código PHP:
Ver original
  1. class Anemometro extends Eloquent {
  2.          
  3.        protected $table = "anenometros";
  4.  
  5.        public static function getLast()
  6.        {
  7.              return Anemometro::orderBy('id', 'desc')->take(1)->first();
  8.        }
  9.        
  10.        
  11.        
  12.        static function getPrepararDatosGrafica()
  13.        {
  14.              $filas = DB::select('select * from anemometro');
  15.              $xdata = array();
  16.              $ydata = array();
  17.  
  18.              foreach($filas as $fila) {
  19.                   $xdata[] = substr($fila->hora, 0, -3);
  20.                   $ydata[] = $fila->temperatura;
  21.              }
  22.  
  23.              return array($xdata, $ydata);
  24.        }
  25. }

Controlador GraficasController.php
Código PHP:
Ver original
  1. use JpGraph\JpGraph;
  2.  
  3. class GraficasController extends \BaseController {
  4.     function pintarGrafica($parametro)
  5.            
  6.        {
  7.            list($xdata, $ydata) = Anemometro::getPrepararDatosGrafica();
  8.            JpGraph::module('line');
  9.                $graph = new Graph(820,194,'auto');
  10.                $graph->SetScale('linlin');
  11.                $graph->SetMargin(40,40,20,10);
  12.                $graph->title->Set('Temperatutra');
  13.                $graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
  14.                $graph->xaxis->SetPos('min');
  15.                $graph->xaxis->SetLabelAngle(0);
  16.              //$graph->yaxis->SetTitle("Grados Centigrados (C)",'center');
  17.                $graph->yaxis->SetTitle($parametro);
  18.                $graph->xaxis->SetTitle("Tiempo",'center');
  19.                $graph->xaxis->SetTickSide(SIDE_DOWN);
  20.                $graph->xaxis->SetTickLabels($xdata);
  21.                $graph->xgrid->Show();
  22.                $p1 = new LinePlot($ydata);
  23.                $p1->SetColor('teal');
  24.                $graph->Add($p1);
  25.                $graph->Stroke(_IMG_HANDLER);
  26.                $response = Response::make($graph->img->Stream(), 200);
  27.                $response->header('Content-type', 'image/jpeg');
  28.                return $response;
  29.  
  30.        }
  31. }

routes.php

Código PHP:
Ver original
  1. Route::get('registro', function()
  2. {
  3.     $registros = DB::table('anemometro')->orderBy('id', 'desc')->take(1)->get();
  4.     return View::make('registros')->with('registros', $registros);
  5. });


vista registros.blade.php

Código PHP:
Ver original
  1. <div><strong>Último Registro</strong>
  2. @foreach($registros as $registro)
  3. {{ $registro->hora }}
  4. {{ $registro->temperatura }} °C
  5.  
  6. <img src="{{ action('GraficasController@pintarGrafica', array('parametro' => 'temperatura')) }}">
  7. <img src="{{ action('GraficasController@pintarGrafica', array('parametro' => 'velocidad')) }}">
  8. <img src="{{ action('GraficasController@pintarGrafica', array('parametro' => 'velocidad_sonido')) }}">
  9. @endforeach
  10. @stop

no Obtengo la grafica , que estoy haciendo mal?