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

eternoaprendiz gracias por responder , ya visualizo la grafica pero tengo un problema en la vista necesito mostras la grafica y una tabla con los datos de una consulta.

Sin utilizar Laravel (con código spaghetti) haría lo siguiente

Código PHP:
Ver original
  1. <?
  2. $usuario = 'postgres';
  3. $contrasenia = '***';
  4.    
  5.     try {
  6.         $conexion1 = new PDO('pgsql:host=localhost;dbname=estaciones',$usuario,$contrasenia);
  7.                  }catch(PDOException $e) {
  8.                     echo "Usuario y Clave Invalidas";
  9.                 throw new Exception("Usuario y Clave Invalidas", 0, $e);
  10.                 }
  11.  
  12. $consulta = $db->prepare("consulta sql ");
  13. $consulta->execute();
  14.  
  15. while($fila = $consulta->fetch(PDO::FETCH_ASSOC))
  16.     {
  17.         $fila['usu_clave'];
  18.     }
  19.  
  20. //y para incluir la grafica en esta misma pagina (vista)
  21.  
  22. echo  '<img src="grafica.php">';

y en grafica.php
Código PHP:
Ver original
  1. $usuario = 'postgres';
  2. $contrasenia = '***';
  3.    
  4.     try {
  5.         $db = new PDO('pgsql:host=localhost;dbname=meteo',$usuario,$contrasenia);
  6.         }catch(PDOException $e) {
  7.             echo "Usuario y Clave Invalidas";
  8.             throw new Exception("Usuario y Clave Invalidas", 0, $e);
  9.             }
  10.  
  11. $consulta = $db->prepare("SELECT * FROM anemometro");
  12. $consulta->execute();
  13.  
  14.  
  15. while($fila = $consulta->fetch(PDO::FETCH_ASSOC))
  16.         {
  17.           $xdata[] = substr($fila['hora'], 0, -3);
  18.           $ydata[] = $fila['temperatura'];
  19.         }
  20. $graph = new Graph(800,250,'auto');
  21. .....
  22. .....
  23. $p1 = new LinePlot($ydata);
  24. $p1->SetColor('teal');
  25. $graph->Add($p1);

como puedo lograr utilizando el framework laravel para que en la vista blade poder mostrar una consulta como tambien la grafica en un <img src= ?

inclui la grafica asi
Código PHP:
Ver original
  1. '<img src="/meteo/public/la-grafica">';
en una vista blade.php

hasta el momento la grafica la estoy contruyendo asi

GraficasController.php
Código PHP:
Ver original
  1. class GraficasController extends \BaseController {
  2.  
  3. function pintarGrafica()
  4.            
  5.        {
  6.                list($xdata, $ydata) = Anemometro::getPrepararDatosGrafica();
  7.         JpGraph::module('line');
  8.             $graph = new Graph(800,250,'auto');
  9.                $graph->SetScale('linlin');
  10.                $graph->SetMargin(40,40,30,130);
  11.                $graph->title->Set('Temperatutra');
  12.                $graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
  13.                $graph->xaxis->SetPos('min');
  14.                $graph->xaxis->SetLabelAngle(0);
  15.                $graph->yaxis->SetTitle("Grados Centigrados (C)",'center');
  16.                $graph->xaxis->SetTitle("Tiempo",'center');
  17.                $graph->xaxis->SetTickSide(SIDE_DOWN);
  18.                $graph->xaxis->SetTickLabels($xdata);
  19.                $graph->xgrid->Show();
  20.                $p1 = new LinePlot($ydata);
  21.                $p1->SetColor('teal');
  22.                $graph->Add($p1);
  23.                $graph->Stroke();
  24.         }
  25. }


Anemometro.php
Código PHP:
Ver original
  1. class Anemometro extends Eloquent {
  2. static function getPrepararDatosGrafica()
  3.        {
  4.              $filas = DB::select('select * from anemometro');
  5.              $xdata = array();
  6.              $ydata = array();
  7.  
  8.              foreach($filas as $fila) {
  9.                   $xdata[] = substr($fila->hora, 0, -3);
  10.                   $ydata[] = $fila->temperatura;
  11.              }
  12.  
  13.              return array($xdata, $ydata);
  14.        }
  15. }


routes.php
Código PHP:
Ver original
  1. Route::get("la-grafica", "GraficasController@pintarGrafica");

Última edición por Montes28; 13/08/2013 a las 23:48