| |||
Graficos Como realizo graficar unos datos que tengo en un archivo plano, a una grafica variable (como una torta de excell) y me realice los calculos de % y cuando me posicione encima de la grafica me despliegue los valores.
__________________ Leonardo Fabio Muñoz Bedoya |
| ||||
Podrias pensar en algo más simple. Lo mas simple es usar graficos horizontales, igual como los tiene este mismo foro en sus encuestas. "busca posteos que digan encuesta" lo unico que haces es leer el valor de tu archivo y lo procesas y lo metes en el width del tag img de html. Y el ALT asi pasas el mosue por encima y te da el valor. ... width="'.$valorporcentaje.'" ALT="'.$valor'." ... Pero tu quieres de torta, eso lleva su tiempo. Pero en www.phpbuilder.com ahi un excelente tutorial de graficación seccion GD. Con eso quedas ok en el tema. Tambien ahí codigo ya fabricado para hacer uno de torta 3D. Saludos.
__________________ Hacerlo Bien Haciendo el Bien. Jaso ezazu agur bero bat. (c) 2002. Made in Chile. Mi sistema es: Win(98);Apache(1.3.x);PHP(4.1.1);mySQL(3.23.x) !Califica este POSTEO¡ |
| |||
bueno hace tiempo encontre un script para paginar con sql server aqui va la funcion /************************************************** ****/ /* Funcion paginar * actual: Pagina actual * total: Total de registros * por_pagina: Registros por pagina * enlace: Texto del enlace * maxpags: El máximo de páginas a presentar simultáneamente (opcional) * Devuelve un texto que representa la paginacion */ function paginar($actual, $total, $por_pagina, $enlace, $maxpags=0) { $total_paginas = ceil($total/$por_pagina); $anterior = $actual - 1; $posterior = $actual + 1; $minimo = $maxpags ? max(1, $actual-ceil($maxpags/2)): 1; $maximo = $maxpags ? min($total_paginas, $actual+floor($maxpags/2)): $total_paginas; if ($actual>1) $texto = "<a href=\"$enlace$anterior\">«</a> "; else $texto = "<b>«</b> "; if ($minimo!=1) $texto.= "... "; for ($i=$minimo; $i<$actual; $i++) $texto .= "<a href=\"$enlace$i\">$i</a> "; $texto .= "<b>$actual</b> "; for ($i=$actual+1; $i<=$maximo; $i++) $texto .= "<a href=\"$enlace$i\">$i</a> "; if ($maximo!=$total_paginas) $texto.= "... "; if ($actual<$total_paginas) $texto .= "<a href=\"$enlace$posterior\">»</a>"; else $texto .= "<b>»</b>"; return $texto; } esta la llamas desde el programa aqui va un ejemplo <?php session_start(); include("conexionbd.php"); $myconn = conectarse(); $color='#FFFFCC'; echo "<div align='center'><img src='imagenes/repasignacion.png' width='554' height='102'></div>"; if (!isset($pag)) $pag = 1; // Por defecto, pagina 1 $tampag = 2; $reg1 = ($pag-1) * $tampag; $result = mssql_query("SELECT PROYECTOS.Reg_ID, ASIGNACION_PRESUPUESTARIA.Asignacion_codigo, PROYECTOS.Pry_ID, PROYECTOS.Sub_sec_ID,PROYECTOS.Com_id, PROYECTOS.Pry_nom, PROYECTOS.Pry_financ, PROYECTOS.Pry_monto, PROYECTOS.Pry_FNDR, PROYECTOS.Pry_monto_RS, PROYECTOS.Pry_cos_tot, PROYECTOS.Pry_creacion FROM ASIGNACION_PRESUPUESTARIA INNER JOIN PROYECTOS ON ASIGNACION_PRESUPUESTARIA.Reg_ID = PROYECTOS.Reg_ID AND ASIGNACION_PRESUPUESTARIA.Codigo = PROYECTOS.Pry_ID WHERE (ASIGNACION_PRESUPUESTARIA.Asignacion_marca = 1) AND (ASIGNACION_PRESUPUESTARIA.Reg_ID = '$region') AND (PROYECTOS.Reg_ID = '$region')"); $total = mssql_num_rows($result); if (mssql_num_rows($result)){ echo "Fecha Reporte :".date("m/d/y"); echo "<br>"; echo "<table border = '1'> \n"; echo "<tr> <td align=center bgcolor='$color'>Region</b></td> <td align=center bgcolor='$color'>Nº Asignacion</b></td> <td align=center bgcolor='$color'>Codigo Proyectos</b></td> <td align=center bgcolor='$color'>Codigo Subsector</b></td> <td align=center bgcolor='$color'>Codigo Comuna</b></td> <td align=center bgcolor='$color'>Nombre Proyecto</b></td> <td align=center bgcolor='$color'>Financiamiento</b></td> <td align=center bgcolor='$color'>Monto Asignado</b></td> <td align=center bgcolor='$color'>Monto FNDR</b></td> <td align=center bgcolor='$color'>Monto RS</b></td> <td align=center bgcolor='$color'>Costo Total</b></td> <td align=center bgcolor='$color'>Año Creacion</b></td></tr>\n"; for ($i=$reg1; $i<min($reg1+$tampag, $total); $i++) { mssql_data_seek($result, $i); $row = mssql_fetch_array($result); echo "<tr><td>".$row["Reg_ID"]."</td>". "<td>".$row["Asignacion_codigo"]."</td>". "<td>".$row["Pry_ID"]."</td>". "<td>".$row["Sub_sec_ID"]."</td>". "<td>".$row["Com_id"]."</td>". "<td>".$row["Pry_nom"]. "<td>".$row["Pry_financ"]."</td>". "<td>".$row["Pry_monto"]."</td>". "<td>".$row["Pry_FNDR"]."</td>". "<td>".$row["Pry_monto_RS"]."</td>". "<td>".$row["Pry_cos_tot"]. "<td>".$row["Pry_creacion"]. "</td></tr> \n"; } echo "</table> \n"; echo paginar($pag, $total, $tampag, "cliente.php?pag="); } else{ echo "¡ No se ha encontrado ningún registro !";} echo "<div align='center'><a href ='reporasignacion.php'>Volver al Menu </a></div>"; mssql_close($myconn) ; ?> cualquier cosa me avisas a mi me funciona perfectamente |
| |||
Chalito .. lee la pregunta .. se está hablando de un gráfico de "torta" (o tarta, sectores o como lo quieran llamar) ... Ese tipo de "graficos" dinámicos se hacen con las librerias GD para PHP .. Hay bastantes librerias ya para generar variados graficas (de torta y otras ...): En hotscrips por ejemplo tienes varias aplicaciones que hacen el trabajo: http://www.hotscripts.com/PHP/Script...hs_and_Charts/ Algunas son "classes" (objetos PHP) te recomiendo este tipo de "aplicaciones" .. pues en su documentación te dirán como y que valores necesita para "graficar" .. así puedes hacerte tu por otro lado el proceso de leer los datos necesarios de un fichero de texto plano o de una base de datos .. o cualquier medio. En phpclasses.org por ejemplo tienes exclusivamente Objetos de este tipo (y otros en general): http://www.phpclasses.org/browse.html/class/11.html (cabe decir .. q las librerias GD tienen que estar instaladas en el servidor que corra PHP ... son unas extensiones). Un saludo, |
| ||||
jeje yo recomiendo la generacion de graficos via XMLya que los graficos con GD al ser redondos quedan pixelados y poco finos, en cuanto al formato XMLm me refiero SVG que son graficos vectoriales y jeje es mu sencillo, tan solo has de saber los tags necesarios y generar un documento SVG (que es code XML) via PHP y tirandode echo o printf() lo que mas prefieras tienes un articulo sobre ello en www.zend.com
__________________ Usuario registrado de Linux #288725 |
| |||
Pues si jejeje, de hecho el Scalable Vector Graphics (SVG) es una opcion muy buena y se pueden hacer cosas muy profesionales el unico pero que le veo a esto de momento y que no comento epplestun es que requieres un plugin en el navegador para viasualizar los documentos con esta tecnologia, pero es una opcione bastante interesante y que tiene mucho potencial. Otra opcion sencilla para hace lo que requieres si no te decides por el uso de Scalable Vector Graphics (SVG) es que uses la clase JpGraph que es sencilla de usar y con la cual crear tambien trabajo muy finos pero ya la decision es toda tuya como quiera te djo el enlace para qu ete documentes en las dos opciones Scalable Vector Graphics (SVG):http://www.w3.org/TR/SVG/ JpGraph: http://www.aditus.nu/jpgraph/ Ojo que el formato para SVG necesita un un plugin que puedes bajar del sitio de adobe y para JpGraph necesitas tener instalado el soporte para gd en php. |
| ||||
Como aclaracion: el plugin del Acrobat Reader permite ver SVG, no es el unico. Para otras implementaciones de SVG rendering: http://www.w3.org/Graphics/SVG/SVG-Implementations.htm8 |