
Muchas veces podemos ser expertos en PHP y MySQL, pero cuando necesitamos hacer una gráfica, sufrimos porque no tenemos la herramienta. Google Chart es una maravillosa herramienta (y gratuita) que nos permitirá hacer muchos tipos de gráficas, modificarlas de muchas maneras, tomando los datos de muchas posibles fuentes, como una base de datos MySQL, un archivo en formato JSON, un archivo plano o en formato CSV, un documento XML o incluso una hoja de cálculo de Google Drive.
Entrar a https://packagecontrol.io/installation
Abrir la consola (view > show console).
Copiar el código en la consola y ejecutarlo.
Cerrar y abrir sublime text.
[Ctrl]-[shift]-[p] o tools > command palette
Escribimos
Install packages > sublime lint > detecta problemas de sintaxis.
Install packages > phpcs
PHPDocs es una adaptación de JavaDocs para documentar la programación en PHP.
En esta sección veremos los siguientes temas:
Bases de Google Chart
Conectar Google Chart con PHP y MySQL
Crear varias gráficas en una página
Leer un archivo plano para graficarlo
Leer un archivo JSON para graficarlo
Leer un archivo XML para graficarlo
Cargar la librería
Preparar la información
Personalización de la gráfica
Cargar la librería
Preparar la información
Personalización de la gráfica
Para cargar los datos necesitamos crear una tabla de dos dimensiones con el objeto:
google.visualization.DataTable
Muchas veces la información que deseamos graficar se encuentra en archivos planos, posiblemente archivos separados por comas o CSV. Por medio de PHP podemos leer estos datos y graficarlos.
JSON es un formato de intercambio de datos que ha ganado mucha popularidad. Podemos leer este formato fácilmente desde PHP y graficarlo desde Google Chart.
XML es uno de los primeros formatos para intercambio en la web, por lo que tenemos mucha información almacenada en el mismo. Por medio de PHP podemos leerlo y graficarlo con GoogleChart.
Podemos crear y poblar una tabla de gráfica (dataTable) de cuatro formas:
Por el constructor DataTable y la poblamos por medio de los métodos addColumn(), addRow(), addRows() y setCell().
En esta sección estudiamos los siguientes puntos:
Bases de Google Chart
Conectar Google Chart con PHP y MySQL
Crear varias gráficas en una página
Leer un archivo plano para graficarlo
Leer un archivo JSON para graficarlo
Leer un archivo XML para graficarlo
En esta clase podrás encontrar los apuntes de la primera sección en formato PDF
Los principales temas que estudiaremos en esta sección son:
La propiedad isStacked
La animación de la gráfica
Manejar la opacidad y el fondo de la gráfica
Manejar el contorno de la gráfica con chartArea
Los parámetros globales de tamaño de letra, color y tipo.
Manejar el título, el eje horizontal y vertical
El objeto series
Usaremos dentro de las opciones:
hAxis: {title: 'Años', titleTextStyle: {color: '#333'}},
Propiedades isStacked :
false — No se apilan las gráficas. Valor por omisión.
true — Si se apilan las gráficas.
'percent' — Se apilan las gráficas para sumar 100%
'relative' — Se apilan las gráficas para sumar 1.
'absolute' — Funciona igual que “true”.
Atenuación en la animación. Sus valores posibles son:
'linear' - Constante.
'in' - Ease in - Lento inicial.
'out' - Ease out - Lento al final.
'inAndOut' - Ease in and out - Lento al inicio y al final.
Es la opacidad de todas las gráficas, donde 0 es completamente transparentes y 1 es completamente opaco.
El valor por omisión es 0.3.
Es el lugar que aparece el título con respecto de la gráfica. El valor es:
in - Ubicar el título dentro de la gráfica.
out - Ubicar el título fuera de la gráfica.
none - Omitir el título.
El valor por omisión es “out”.
Es el color de fondo de la gráfica. Por omisión su valor es “white”. Puede ser número hexadecimal o un nombre del color en inglés.
Un objeto con propiedades para configurar la ubicación y el tamaño del área del gráfico (donde se dibuja el gráfico en sí, excluyendo el eje y las leyendas). Se admiten dos formatos: un número o un número seguido de %.
Ejemplo: chartArea: {left: 20, top: 0, width: '50% ', height: '75%'}
Puede ser una cadena o un arreglo que corresponde a cada una de las opciones de la gráfica, por ejemplo:
colors:['red','#004411'].
CrossHair son las líneas verticales y horizontales que aparecen cuando el usuario selecciona un punto en la gráfica.
Los estados que pueden activar esta propiedad son: focus, selection o ambos (both).
La propiedad CrossHair es un objeto.
dataOpacity
La transparencia de los puntos de datos, siendo 1.0 completamente opaco y 0.0 totalmente transparente.
fontSize: Cambia el tamaño de todas las fuentes de la gráfica.
fontName: Cambia el tamaño de todas las fuentes de la gráfica.
hAxis.textPosition: Posición del texto del eje horizontal, en relación con el área del gráfico. Valores admitidos: 'out', 'in', 'none'.
Las propiedades width y height manejan el ancho y alto de la gráfica, respectivamente, en pixeles.
Las propiedades para manejar las leyendas en Google Chart
Muchos estilos de líneas discontinuas son posibles a través de la opción lineDashStyle, que toma una matriz de números.
El primer número indica la longitud de un guión, y el segundo indica la distancia después de él.
Si hay un tercer número, esa es la longitud del siguiente guión, y un cuarto número, si está presente, es la longitud del espacio siguiente.
lineWidth: Ancho de línea de datos en píxeles. Use cero para ocultar todas las líneas y mostrar sólo los puntos. Puede anular valores para series individuales utilizando la propiedad “series”.
orientation: La orientación del gráfico. Cuando se establece en 'vertical', gira los ejes del gráfico de modo que (por ejemplo) un gráfico de columnas se convierta en un gráfico de barras y un gráfico de área crece hacia la derecha en lugar de hacia arriba.
En muchos gráficos de Google, los valores de datos se muestran en puntos precisos. Un gráfico de líneas es sólo un conjunto de estos puntos conectados por líneas, y un gráfico de dispersión no es más que puntos.
Si se establece en true, dibujará series de derecha a izquierda. El valor predeterminado es dibujar de izquierda a derecha.
Una matriz de objetos, cada uno describiendo el formato de la serie correspondiente en el gráfico.
Para usar valores predeterminados para una serie, especifique un objeto vacío {}.
Un tema es un conjunto de valores de opción predefinidos que trabajan juntos para lograr un comportamiento gráfico específico o un efecto visual. Actualmente solo hay un tema disponible.
Tooltips es un objeto para modificar los pequeños recuadros que aparecen cuando seleccionamos un punto en la gráfica. Un ejemplo puede ser:
{textStyle: {color: '#FF0000'}, showColorCode: true}
vAxis.direction: La dirección en la que crecen los valores a lo largo del eje vertical. Especifique -1 para invertir el orden de los valores.
Las principales opciones que vimos en la sección fueron:
La propiedad isStacked
La animación de la gráfica
Manejar la opacidad y el fondo de la gráfica
Manejar el contorno de la gráfica con chartArea
Los parámetros globales de tamaño de letra, color y tipo.
Manejar el título, el eje horizontal y vertical
El objeto series
En esta clase puede encontrar los apuntes de la sección 2: Las opciones de las gráficas en Google Chart
Los temas que estudiaremos en esta sección son:
Anotaciones
Remarcar tramos de la gráfica con “certeza” o “énfasis”.
Incluir los intervalos de la gráfica
Añadir valores en los tooltips
Manejar tooltips en HTML
Formatear los tooltips desde una función
Desplegar los tooltips por medio de un evento
Las anotaciones son marcas que aparecen en la línea de la serie.
Indica si un punto de datos es seguro o no. El modo en que se visualiza depende del tipo de gráfico; por ejemplo, se puede indicar mediante líneas de trazos o un relleno de rayas.
Indica el rango de datos potencial para un punto específico.
Estiliza ciertas propiedades de diferentes aspectos de sus datos. Esos valores son:
color
opacity
stroke-width
stroke-color
stroke-opacity
fill-color
Texto a mostrar cuando el usuario se sitúa sobre el punto de datos asociado con esta fila.
Debemos activar la propiedad isHtml a true en las opciones.
En la definición de la columna debemos activar también el HTML
data.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}});
Por medio del método “setAction()” podemos detectar un evento en los tooltips.
Lo más adecuado es colocar el tooltip en “selection” para que el usuario pueda seleccionar la opción.
Esperar a que termine de dibujarse la gráfica por el evento “ready”:
google.visualization.events.addListener(chart, 'ready', function () {
//
});
Los puntos revisados en esta sección fueron:
Anotaciones
Remarcar tramos de la gráfica con “certeza” o “énfasis”.
Incluir los intervalos de la gráfica
Añadir valores en los tooltips
Manejar tooltips en HTML
Formatear los tooltips desde una función
Desplegar los tooltips por medio de un evento
Mandar una gráfica a un PNG
En esta clase encontrará los apuntes a la sección tres: DataFormat
Crear gráficas de barras horizontales
Crear barras horizontales con varias series
Crear barras apiladas
Las propiedades bar, bars y axes
Las gráficas de columnas
Los estilos de gráficas de columnas
Las anotaciones de las gráficas de columnas
Tenemos los valores en forma horizontal.
Podemos incluir varias series.
Podemos apilar varias series.
Para aprovechar las opciones de hAxis y vAxis necesitamos el método: convertOptions(opciones)
Podemos graficar varias series.
Por medio de la propiedad isStacked podemos apilar las series dentro del mismo grupo.
Sus valores posibles son:
true
La propiedad axes nos permite manejar los ejes x y y.
La propiedad bar, con su parámetro groupWidth nos permite controlar el ancho del grupo de barras, donde 100% indicaría que no hay espacio entre los grupos.
Tenemos los valores en forma vertical.
Podemos incluir varias series.
Podemos apilar varias series.
color
opacity
fill-color
fill-opacity
stroke-color
stroke-opacity
annotations: {
textStyle: {
fontName: 'Times-Roman',
fontSize: 38,
bold: true,
italic: false,
// Opacidad.
opacity: 0.8
}
},
Las gráficas de burbujas grafican cuatro variables:
La primer variable es el eje de las “equis”.
La segunda variable es el eje de las “yes”.
La tercera variable es el color de la burbuja.
Los temas que estudiamos en la sección cuatro fueron:
Crear gráficas de barras horizontales
Crear barras horizontales con varias series
Crear barras apiladas
Las propiedades bar, bars y axes
Las gráficas de columnas
Los estilos de gráficas de columnas
Las anotaciones de las gráficas de columnas
Apuntes a la sección cuatro: Las gráficas de barras horizontales y verticales
Manejo de las gráficas de burbujas
La propiedad colorAxis
La propiedad bubble para el control del texto en la burbuja
Las gráficas de burbujas grafican cuatro variables:
La primer variable es el eje de las “equis”.
La segunda variable es el eje de las “yes”.
La tercera variable es el color de la burbuja.
Por medio de la propiedad de tipo objeto colorAxis podemos identificar una tercera variable por medio del color.
La propiedad bubble nos permitirá controlar el contenido de la burbuja.
Las gráficas de burbuja aceptan las diferentes propiedades, como backgroundColor, animation, etc.
Los temas vistos en la sección 5 son:
Manejo de las gráficas de burbujas
La propiedad colorAxis
La propiedad bubble para el control del texto en la burbuja
Conclusión a la sección cinco: Gráficas de burbujas
Las gráficas de calendario
Modificar el tamaño de los cuadros de los días
Cambiar el aspecto de las celdas en los calendarios
Cambiar el aspecto de los días de la semana
Modificar el aspecto de las etiquetas
Las gráficas de calendario nos servirán para ver tendencias en el tiempo, generalmente en periodos amplios, como meses o años.
Si el valor de la medida es negativo, el color del día se tornará naranja oscuro.
Para modificar el tamaño del recuadro del día utilizamos el parámetro:
calendar: { cellSize: 10 },
Podemos modificar el aspecto de las celdas como el contorno, el ancho del mismo y su opacidad con cellColor:.
Por medio de la propiedad dayOfWeekLabel podemos cambiar el aspecto de las letras de los días de la semana.
Para modificar el aspecto de las leyendas de los años contamos con las siguientes propiedades:
underYearSpace
Las gráficas de calendario
Modificar el tamaño de los cuadros de los días
Cambiar el aspecto de las celdas en los calendarios
Cambiar el aspecto de los días de la semana
Modificar el aspecto de las etiquetas
Apuntes de la sección seis: Las gráficas de calendario
Las gráficas de vela o candlestick
Las gráficas de cascada
Visualización de una tabla
Las gráficas de dona
Gráficas de Gantt
Los indicadores o gráficas de Gauge
Las gráficas de vela o candlestick se usan para mostrar un valor de apertura y cierre superpuesto encima de una varianza total.
Por medio de las gráficas candlestick podemos hacer una gráfica de cascada o waterfall.
Una tabla que puede ser ordenada y paginada.
Por medio de la opción pieHole podemos hacer una gráfica de dona, a partir de una gráfica de pie.
Una gráfica de Gantt ilustra el desglose de un proyecto en sus tareas componentes.
Esta gráfica presenta un indicador con un dial. Las gráficas se basan en SVG o VML.
Esta gráfica muestra un mapa por países, por regiones o por continentes.
Las gráficas son creadas en SVG o VML.
No son escalables ni arrastrables.
Un histograma es un gráfico que agrupa los datos numéricos en contenedores, mostrando los contenedores como columnas segmentadas.
Se utilizan para describir la distribución de un conjunto de datos: la frecuencia con la que los valores caen en intervalos.
Un gráfico de líneas que se representa en el navegador mediante SVG o VML.
El gráfico de mapa de Google muestra un mapa utilizando la API de Google Maps.
Las organigramas son diagramas de una jerarquía de nodos, comúnmente usados para representar relaciones superiores - subordinadas en una organización.
Los gráficos de dispersión trazan puntos en un gráfico sobre dos variables.
Una línea de tiempo es un gráfico que describe cómo se utiliza un conjunto de recursos en el tiempo.
Una línea de tendencia es una línea superpuesta en un gráfico que revela la dirección general de los datos.
Un gráfico de área escalonada que se representa en el navegador mediante SVG o VML.
Un árbol de palabras representa múltiples secuencias paralelas de palabras.
Podría ser usado para mostrar qué palabras preceden más seguido a una palabra objetivo (por ejemplo, "Gatos son ...") o para mostrar una jerarquía de términos (por ejemplo, un árbol de decisión).
Las gráficas de vela o candlestick
Las gráficas de cascada
Visualización de una tabla
Las gráficas de dona
Gráficas de Gantt
Los indicadores o gráficas de Gauge
Apuntes de la sección siete: Las otras gráficas de Google Chart
Existen diversas maneras de representar datos visualmente, más allá de los gráficos tradicionales como barras y líneas. Se pueden utilizar gráficos de sectores, mapas de calor, diagramas de caja, gráficos de burbujas, e incluso pictogramas con iconos o imágenes que representan los datos. La elección del tipo de gráfico dependerá del tipo de datos y de la información que se desea resaltar.
Puede inicializar un DataTable pasando un objeto de JavaScript al parámetro de datos.
Propiedad cols:
cols es una matriz de objetos que describe el ID y el tipo de cada columna.
Cada propiedad es un objeto con las siguientes propiedades (con distinción entre mayúsculas y minúsculas).
Propiedad rows:
La propiedad rows contiene una matriz de objetos de fila.
Cada objeto de tipo fila (row) tiene una propiedad requerida llamada “c”, que es una matriz de celdas (cell) en esa fila.
Por medio de AJAX podemos disparar un archivo de servidor (por ejemplo, PHP), el cual lee un archivo en el servidor y lo regresa como una cadena.
Por medio de AJAX podemos disparar un archivo de servidor (por ejemplo, PHP), el cual lee un archivo en el servidor y lo regresa como una cadena.
Podemos almacenar los datos de una gráfica en una hoja de cálculo de Google Drive.
Apuntes a la sección 8: Otras formas de poblar una gráfica
ColorZilla es una herramienta que nos permita detectar un color de un elemento de una página web.
Herramientas para encontrar colores armónicos
Páginas para descargar fuentes e íconos
Crear gradientes de forma sencilla por medio de dos herramientas
Herramientas para las Cajas flexibles
Herramientas para objetos SVG y Curvas Bezier Cuadráticas
Herramienta para diseños display: grid;
El alumno :
Aprender a crear gráficas y conectarlas a una tabla de MySQL por medio PHP
Aprender a incluir anotaciones, tooltips, alcances, dominios, certezas y énfasis en las gráficas
Realizar gráficas de barras, sus opciones y sus diferentes roles
Los ejercicios del curso Google Chart con PHP y MySQL
Muchas veces podemos ser expertos en PHP y MySQL, pero cuando necesitamos hacer una gráfica, sufrimos porque no tenemos la herramienta. Google Chart es una maravillosa herramienta (y gratuita) que nos permitirá hacer muchos tipos de gráficas, modificarlas de muchas maneras, tomando los datos de muchas posibles fuentes, como una base de datos MySQL, un archivo en formato JSON, un archivo plano o en formato CSV, un documento XML o incluso una hoja de cálculo de Google Drive.
Este curso no es básico. Es necesario que tengas conocimientos básicos de PHP y JavaScript, así como cierta práctica con MySQL, pero no necesitas ser un experto. También necesitarás un editor de código como APTANA, SublimeText, Dreamweaver o uno similar, así como un navegador moderno.
Los objetivos de este curso son:
Aprenderá a conectar Google Chart y PHP desde MySQL, Archivos planos CSV, JSON y XML
Aprenderá a crear gráficas de Área y conectarlos a los datos con PHP y MySQL
Incluirá anotaciones, tooltips, alcances, dominios, certezas y énfasis en las gráficas
Realizará gráficas de barras, sus opciones y sus diferentes roles
Creará las gráficas con cuatro variables o de burbujas
Creará gráficas de calendario, cargar los datos desde una base de datos MySQL desde PHP, modificar el aspecto de los cuadros de los días, los nombres de los días, meses y años
Aprenderá a realizar diferentes tipos de gráficas con Google Chart como:
Gráficas de velas
Las gráficas de cascada
Visualización de una tabla
Las gráficas de dona
Gráficas de Gantt
Los indicadores o gráficas de Gauge
Gráficas geográficas
Las gráficas de línea
Los histogramas
Las gráficas de mapas
Los organigramas
Gráficas de dispersión
Líneas de tiempo
Gráficas de tendenci
Gráficas de área escalonada
Árboles de palabras
Conectará las gráficas con los objetos de iniciación de JavaScript y a una hoja de cálculo de Google Drive
Todas las gráficas las conectamos a PHP y a alguna tabla de MySQL para que puedas hacer poderosas aplicaciones web.