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!