jueves, 23 de abril de 2009

Google Chart (Para reportear gratis n_n)

Hace tiempo un amigo me mostró una monería más de Google, se trata de Google Charts, el cual es un servicio que provee gráficas (tipo excel) usando un API muy sencilla.

Lo único que hay que hacer es meter en el navegador una url de este tipo.

http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=500x200&chl=Hello|World

En este ejemplo los parámetros son los siguientes

cht (chart type) = p3 >> Con esto le indicamos el tipo de gráfico que queremos usar (Círcular, barras, etc), en este paso es un pie 3D.

chd (chart data) = 60, 40 >> Aquí especificamos los datos que queremos graficar, separados por una coma.

chs(chart size) = 500x200 >> Ancho y largo del gráfico que se genera.

chl(chart labels) = Hello|World >> Son los labels correspondientes a los datos separados aquí por un pipe (|), en este ejemplo Hello = 60, World = 40.

Así de fácil, la documentación completa la pueden encontrar en la liga que puse antes.

Este tipo de gráficas pueden ser muy útiles para crear algunos pequeños reportes muy decentes sin incurrir en costos extras por licenciamiento de alguna herramienta de reporteo.

Adicional a esta API me encuentro con un wrapper para C# que hace las cosas más sencillas aún.

Aquí un pequeño ejemplo de como usarlo.

if (pieRadioButton.Checked == true)

{

    PieChart pieChart = new PieChart  (500,200,PieChartType.ThreeD);

    pieChart.SetTitle("Pie Chart");

    pieChart.SetData(new float[] { float.Parse(valueOneTextBox.Text), float.Parse(valueTwoTextBox.Text) });

    pieChart.SetPieChartLabels(new string[]{labelOneTextBox.Text,labelTwoTextBox.Text});               

    url = pieChart.GetUrl();

}

else

{

   BarChart barChart = new BarChart(500, 200, BarChartOrientation.Horizontal, BarChartStyle.Grouped);

    barChart.SetTitle("Bar Chart");

    barChart.SetData(new float[] { float.Parse(valueOneTextBox.Text), float.Parse(valueTwoTextBox.Text) });

   url = barChart.GetUrl();

}

En este ejemplo se usa hardcode para definir el tamaño de las gráficas así como los títulos pero estos parámetros también son personalizables, esta es la interfaz de creación de los gráficos que use, con sólo dos valores como muestra.

image

image

Y por si todo esto fuera poco, esta misma API permite crear mapas dinámicos así como los llamado Googlometros, pero de estos dos les comentaré en próximas entregas.

Espero les sirva. Saludos