Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/11/2015, 12:30
JimmyBrain
 
Fecha de Ingreso: noviembre-2014
Mensajes: 46
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Colocar un nuevo array en barplot en JpGraph

gracias por la ayuda morti , el codigo queda asi :

Código:
        function consultarDeudoresMesGrafico($year)
        {
            
            $consulta = "";
            
            if ($year == "") {
                $consulta = mysql_query("select id_deudor,month(fecha_pago_deudor) from deudores");
            } else {
                $consulta = mysql_query("select id_deudor,month(fecha_pago_deudor) from deudores where year(fecha_pago_deudor)='" . $year . "'");
            }
            
            $monto_total = "0";
            
            if ($year == "") {
                $monto_total = totalDeudores();
            } else {
                $monto_total = totalDeudorPorYear($year);
            }
            
            if (!is_numeric($monto_total)) {
                $monto_total = "0";
            }
			
	        $montos = array("300","400","600","800","900","200","300","100","400","600","800","900");
            
            $cantidad = mysql_num_rows($consulta);
            
            $ids = array();
            
            $Enero      = 0;
            $Febrero    = 0;
            $Marzo      = 0;
            $Abril      = 0;
            $Mayo       = 0;
            $Junio      = 0;
            $Julio      = 0;
            $Agosto     = 0;
            $Septiembre = 0;
            $Octubre    = 0;
            $Noviembre  = 0;
            $Diciembre  = 0;
            
            while ($resultado = mysql_fetch_array($consulta)) {
                
                $id_cliente = $resultado[0];
                $mes_pago   = $resultado[1];
                
                if (!in_array($id_cliente, $ids)) {
                    array_push($ids, $id_cliente);
                    if ($mes_pago == 1) {
                        $Enero++;
                    }
                    if ($mes_pago == 2) {
                        $Febrero++;
                    }
                    if ($mes_pago == 3) {
                        $Marzo++;
                    }
                    if ($mes_pago == 4) {
                        $Abril++;
                    }
                    if ($mes_pago == 5) {
                        $Mayo++;
                    }
                    if ($mes_pago == 6) {
                        $Junio++;
                    }
                    if ($mes_pago == 7) {
                        $Julio++;
                    }
                    if ($mes_pago == 8) {
                        $Agosto++;
                    }
                    if ($mes_pago == 9) {
                        $Septiembre++;
                    }
                    if ($mes_pago == 10) {
                        $Octubre++;
                    }
                    if ($mes_pago == 11) {
                        $Noviembre++;
                    }
                    if ($mes_pago == 12) {
                        $Diciembre++;
                    }
                }
                
            }
            
            $textos = array(
                "Enero",
                "Febrero",
                "Marzo",
                "Abril",
                "Mayo",
                "Junio",
                "Julio",
                "Agosto",
                "Septiembre",
                "Octubre",
                "Noviembre",
                "Diciembre"
            );
            $datos  = array(
                $Enero,
                $Febrero,
                $Marzo,
                $Abril,
                $Mayo,
                $Junio,
                $Julio,
                $Agosto,
                $Septiembre,
                $Octubre,
                $Noviembre,
                $Diciembre
            );
            
            $grafico = new Graph(500, 400, 'auto');
            $grafico->SetScale("textlin");
            
            $theme = new UniversalTheme;
            $grafico->SetTheme($theme);
            $grafico->title->Set("Cantidad de deudores por mes");
            
            $grafico->Set90AndMargin(80, 40, 60, 40);
            $grafico->img->SetAngle(90);
            
	        $grafico->yaxis->scale->SetGrace(20);

            $grafico->xaxis->title->Set("");
            $grafico->yaxis->title->Set(""); 			
	    	$grafico->title->SetFont(FF_FONT1,FS_BOLD);
	        $grafico->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
	        $grafico->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
	        $grafico->xaxis->SetTickLabels($textos);
            
            $grafico->footer->center->Set('Monto total : $' . $monto_total);
			
			$barplots = array();
			
			for($i=0; $i<count($datos); $i++){
				$barplots[$i] = new BarPlot($datos[$i]);
				$barplots[$i]->value->SetFormat($montos[$i]);
				$barplots[$i]->value->Show();
				$barplots[$i]->value->HideZero(true);
				$barplots[$i]->value->SetFont(FF_FONT1,FS_BOLD);
				$barplots[$i]->SetValuePos('center');
			}
			
			//$gbarplot = new GroupBarPlot($barplots);
			$gbarplot = new AccBarPlot($barplots);

            $grafico->Add($gbarplot);
			
            $grafico->Stroke();
            
        }
El problema es que cuando quiero meter todos los barploits en el GroupBarPlot se ve todo asi :



No aparecen todos los meses y ningun dato.

Y cuando quiero usar AccBarPlot me devuelve simplemente este error :



El efecto que quiero lograr es como la primera imagen del primer post pero con un setFormat basado en otro array llamado $montos sin perder los nombres de los meses y sin perder las cantidades de pagos de cada barra.

¿ Como puedo solucionar este problema ?