Gráficos Estadísticos Multiseries
A pedido de los lectores del blog, hago esta pequeña explicación sobre gráficos estadísticos multiseries. En breve publicaré un tutorial sobre gráficos de línea.

Al final de este ejemplo, encontrarán el enlace para descargar el código fuente completo.
Pueden ver los demás tutoriales sobre gráficos para tener más claros los parámetros usados para graficar:
Gráficos estadísticos de Barras
Gráficos estadísticos Maestro/Detalle
Idea General: Se tendrán 4 productos (gaseosas) de los cuales se quiere comparar el total de dinero obtenido de sus ventas en 3 años (Anio1, Anio2, Anio3).
multiserie
Empezamos incluyendo la librería necesaria:
require_once 'includes/FusionCharts.php';
Cargamos una matríz con los productos a ser evaluados (todos en la columna 0, solo varía la fila)
$matrizDatos[0][0] = "Coca Cola"; $matrizDatos[1][0] = "Pepsi"; $matrizDatos[2][0] = "Sprite"; $matrizDatos[3][0] = "Fanta";
Ahora cargamos la matríz con los valores (total dinero obtenido) de cada año.
Columna 1 = Año 1
Columna 2 = Año 2
Columna 3 = Año 3
$matrizDatos[0][1] = 4500; $matrizDatos[1][1] = 3500; $matrizDatos[2][1] = 7875; $matrizDatos[3][1] = 7756; // En la columna 2 cargo los valores del año2 $matrizDatos[0][2] = 4758; $matrizDatos[1][2] = 4230; $matrizDatos[2][2] = 6600; $matrizDatos[3][2] = 8300; // En la columna 3 cargo los valores del año3 $matrizDatos[0][3] = 5267; $matrizDatos[1][3] = 4800; $matrizDatos[2][3] = 9500; $matrizDatos[3][3] = 8700;
Comienza el armado del string que me servirá para pasar de parámetro para graficar.
Este es el string categorías. Aquí irán los nombres de los productos (las gaseosas).
$strDatosAnio1 = "<dataset seriesName='Anio 1'>"; $strDatosAnio2 = "<dataset seriesName='Anio 2'>"; $strDatosAnio3 = "<dataset seriesName='Anio 3'>";
El siguiente paso, es unos de los más importantes. Consiste en el volcado de los valores a las variables.
Recuerden que la columna 0 correspondía a los productos, la columna 1 al Año1, etc.
Recorro la matríz y paso sus valores a un arreglo unidimensional.
foreach($matrizDatos as $arrayDatos)
{
// En la posición 0 tengo las categorías (gaseosas)
$strCategorias .= "<category name='" . $arrayDatos[0] . "' />";
// en las siguientes posiciones tengo los valores.
$strDatosAnio1 .= "<set value='" . $arrayDatos[1] . "' />";
$strDatosAnio2 .= "<set value='" . $arrayDatos[2] . "' />";
$strDatosAnio3 .= "<set value='" . $arrayDatos[3] . "' />";
}
Ahora nos queda cerrar las etiquetas de cada variable string.
$strCategorias .= "</categories>"; // cierro las etiquetas dataset $strDatosAnio1 .= "</dataset>"; $strDatosAnio2 .= "</dataset>"; $strDatosAnio3 .= "</dataset>";
Creo una última variable ($strXML), a la cual le asignaré los parámetros generales para el gráfico.
caption: Título del gráfico.
numberPrefix: Unidad en que serán expresados los valores (en este caso en $).
rotateValues: Para que los valores ($) tengan una posición en 90º en las barras.
yAxisName: leyenda del eje Y.
// Paso los parámetros generales para el gráfico. $strXML = "<chart caption='Entrada de dinero por gaseosas' numberPrefix='$' rotateValues='1' yAxisName='Recaudado $ (1k = 1.000)'>";
El siguiente paso es concatenar todas las variables strings usadas ($strCategorias, $strDatosAnio1, etc.) en $strXML, y luego cierro la etiqueta Chart.
// concateno todos los string en uno solo $strXML .= $strCategorias . $strDatosAnio1 . $strDatosAnio2 . $strDatosAnio3; // cierro la etiqueta chart $strXML .="</chart>";
Finalmente, imprimo el gráfico, pasándole como parámetro el string $strXML.
echo renderChartHTML("graficos_swf/MSColumn3D.swf", "", $strXML, "ventas", 600, 500, false, false);
También te puede Interesar
¿Disfrutaste esta entrada? Por qué no dejas un comentario abajo y continúas la conversación, o te suscribes a mi feed y obtienes artículos como este enviados a tu lector de feeds.
Comentarios
Realize mis pruebas y me fui por el camino de la matriz, consulte los datos los coloque en la matriz y luego segui tu ejemplo, me salieron muy bien al principio, espero que continue asi sin importar la escalabilidad de los datos, gracias viejo
Gráficos estadisticos Multiseries…
Tutorial de como realizar gráficos estadisticos Multiseries con PHP y FusionCharts….
oye me podrias pasar el cogido fuente de graficas multiseries pero para pascal??
mi correo las_cartas_9@hot…
Estimado.
¿ Es posible agregar un link a cada serie como en el ejemplo maestro-detalle?.
De poder se que se puede, pero no puedo implementar.
Hay un ejemplo en este link http://www.fusioncharts.com/Demos/Blueprint/
tu pagina es re buena gracias por dejar esos graficos que te ayudan muchisimo te lo agradesco soy estudiante de ingenieria de sistemas, he una consulta como haces para que el grafico nos salga directamente de la base de datos.
Diego, yo de nuevo, con este tipo de gráficos he tenido problemas, dado que al armar la matriz, me muestra en una ubicación de columna (ej. Columna cocacola) todos los valores de todas las series… cómo habría que hacerlo para trabajar con variables, dentro de un while?
Gracias Diego, el ejemplo que mencionas ya lo realice con anterioridad y me funciona de maravilla el problema es cuando quiero generar 2 graficas como resultado de la grafica maestro



ahh y gracias de antemano amigo…de lo mejor tus ejemplos