Ver Mensaje Individual
  #8 (permalink)  
Antiguo 24/05/2011, 15:53
yaris14
 
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Respuesta: jpgraph con valores desde BD

Hola. Estoy graficando una distribución normal y necesito calcular una sumatoria del arreglo que saco de la BD antes de recorrerlo otra vez para enviarlo al gráfico. Eso me da el error "Empty input data array specified for plot. Must have al leats one data point"
No funciona ni llamando la sumatoria en una clase.

Código PHP:
$cadena =  "select distinct a.grade FROM evaluation_student_evals a inner join td_estudiantes b on a.party_id = b.id_estudiante where b.cod_depto = '$depto' and a.grade >= 0 and a.grade <= 100 order by a.grade ";
$sql $conectar-> consultas($cadena);        
//calcular sigma y miu          
$total pg_num_rows($sql);
$suma 0;
while (
$row pg_fetch_assoc($sql))
    {
        
$suma += $row['grade'];
    }
$media $suma/$total
              
//Normalizar datos de notas Z = (X-miu)/sigma
      
while ($row pg_fetch_assoc($sql))
    {        
        
$z[$i] = ($row['grade'] - 57)/12// $z => arreglo con notas normalizadas
        
$ordenada[$i] = (1/($desviacion*sqrt(pi())))*(exp(-0.5*(($row['grade']-57)*($row['grade'] - 57))/($desviacion*$desviacion)));                             
        
$i++;
    }        

        
$graph = new Graph(600,400,"auto");
        
$graph->SetScale("linlin");
        
$theme_class=new UniversalTheme;        
        
$graph->SetTheme($theme_class);
        
$graph->yaxis->HideZeroLabel();
        
$graph->yaxis->HideLine(false);
        
$graph->yaxis->HideTicks(false,false);
        
        
$graph->xgrid->Show();
        
$graph->xgrid->SetLineStyle("solid");
        
$graph->xaxis->SetTickLabels(array(-3,-2,-1,0,1,2,3));
        
$graph->xgrid->SetColor('#E3E3E3');
        
        
$p1 = new LinePlot($ordenada);
        
$graph->Add($p1);
        
$p1->SetColor("#6495ED");
        
$graph->legend->SetFrameWeight(1);
        
        
// Output line
        
$graph->Stroke(); 
Gracias!