Gráficos con googleVis

Gráficos con GoogleVis

(ver esta entrada en Internet Explorer o Mozilla Firefox)

Con el ánimo de generar interés en el uso de los gráficos del paquete GoogleVis de R, presento a continuación dos ejemplos de su uso:

googleVis es un paquete de R que proporciona una interfaz entre R y Google Visualisation API la cual permite la visualización de datos en su sitio web o en presentaciones HTML a manera de gráficos interactivos. La salida de una función googleVis es un código HTML que contiene los datos y las referencias a las funciones de JavaScript alojados por Google. googleVis hace uso del servidor HTTP interno de R para mostrar la salida a nivel local en un navegador.

Lo primero que debemos hacer es instalar el paquete googleVis en R. Un gráfico interesante es el Google Motion Chart que se aplica con la función gvisMotionChart() sobre una base de datos o data.frame. Los datos tienen que tener al menos cuatro columnas con el nombre de los individuos (idvar), el tiempo (timevar) y dos columnas de valores numéricos para los ejes X y Y. Otras columnas pueden ser usadas para definir colores y tamaños.

Considere por ejemplo el siguiente data.frame correspondiente a las variables Ingreso Per Cápita, Esperanza de Vida al Nacer, Indice de Gini y % de Adultos con VIH, medidas anualmente en Colombia, Argentina, Brasil y Chile.

datos

País Año IPP EVN GINI VIH 1 Argentina 2000 10571.36 73.792 49.84 0.40 2 Argentina 2001 9992.71 74.005 49.84 0.40 3 Argentina 2002 8797.64 74.216 52.52 0.40 4 Argentina 2003 9481.37 74.423 52.52 0.40 5 Argentina 2004 10232.10 74.627 52.52 0.40 6 Argentina 2005 11063.00 74.826 50.03 0.40 7 Argentina 2006 11883.08 75.019 50.03 0.40 8 Argentina 2007 12784.80 75.206 50.03 0.40 9 Argentina 2008 13515.18 75.387 50.03 0.50 10 Argentina 2009 13498.04 75.562 50.03 0.50 11 Argentina 2010 14594.76 75.733 50.03 0.50 12 Brazil 2000 8056.06 70.140 58.59 0.40 13 Brazil 2001 8022.52 70.445 58.69 0.40 14 Brazil 2002 8131.21 70.734 58.23 0.40 15 Brazil 2003 8110.41 71.010 57.61 0.40 16 Brazil 2004 8461.50 71.279 57.61 0.40 17 Brazil 2005 8596.00 71.551 56.39 0.40 18 Brazil 2006 8869.55 71.837 56.39 0.40 19 Brazil 2007 9305.66 72.141 55.02 0.40 20 Brazil 2008 9682.00 72.464 55.02 0.45 21 Brazil 2009 9569.78 72.802 55.02 0.45 22 Brazil 2010 10192.21 73.148 55.02 0.45 23 Chile 2000 10435.17 77.010 55.36 0.20 24 Chile 2001 10665.20 76.860 55.36 0.30 25 Chile 2002 10778.78 77.420 55.36 0.30 26 Chile 2003 11082.55 77.480 54.92 0.30 27 Chile 2004 11649.71 77.530 54.92 0.30 28 Chile 2005 12262.00 77.930 54.92 0.30 29 Chile 2006 12677.50 78.337 52.00 0.40 30 Chile 2007 13124.60 78.452 52.00 0.40 31 Chile 2008 13474.41 78.561 52.00 0.40 32 Chile 2009 13087.38 78.871 52.00 0.40 33 Chile 2010 13610.84 78.991 52.00 0.40 34 Colombia 2000 5749.55 71.042 57.50 0.90 35 Colombia 2001 5738.00 71.317 57.50 0.80 36 Colombia 2002 5755.26 71.580 57.50 0.80 37 Colombia 2003 5885.52 71.836 58.83 0.80 38 Colombia 2004 6080.32 72.086 58.83 0.70 39 Colombia 2005 6306.00 72.331 58.83 0.70 40 Colombia 2006 6663.54 72.572 58.49 0.60 41 Colombia 2007 7081.42 72.809 58.49 0.60 42 Colombia 2008 7168.15 73.041 58.49 0.50 43 Colombia 2009 7090.69 73.268 58.49 0.50 44 Colombia 2010 7309.39 73.489 58.49 0.50

Luego aplicamos la función gvisMotionChart() sobre esta base, indicando que variable contiene los nombres de los individuos (en este caso País) y cual contiene el tiempo (en este caso Año)

M1 = gvisMotionChart(datos, idvar='País', timevar='Año')

El gráfico lo realizamos con la función plot() sobre M1. Por defecto la primera variable numérica (IPP) será para el eje X, la siguiente (EVN)

para Y. El resto se usará para colores y tamaños de los puntos, aunque esto se puede cambiar. El gráfico se desplegará en el explorador de

internet por defecto.

plot(M1)

Dando click en play veremos el comportamiento año a año de las de variables. En la parte superior derecha podemos cambiar además el tipo de gráfico por uno de barras o de lineas. Si da click sobre alguno de los puntos le indicará el país al cual pertenece y además le mostrará la traza de este a través del tiempo.

Para generar el archivo HTML y guardarlo usamos la instrucción:

print(M1, file="Gráfico1.html")

O un Gadget para agregarlo por ejemplo en páginas de google sites como esta:

G = createGoogleGadget(M1)

cat(G, file="myGadget1.xml")

Otro tipo de gráfico interesante se logra con la función gvisGeoMap con la cual podemos graficar información relacionada a lugares geográficos como países, ciudades o regiones. Solo necesitamos una base de datos que contenga las coordenadas geográficas y la variable que queremos usar. Así por ejemplo, si queremos graficar la densidad de población (hab/km2) de los departamentos de Colombia hacemos uso de un data.frame conteniendo los códigos de los departamentos (ver), los nombres que queremos que aparezcan cuando el mouse pase por encima del departamento y la variable de interés:

DenPob

Cod Dep Densidad 1 CO-AMA Amazonas 0.70 2 CO-ANT Antioquia 95.40 3 CO-ARA Arauca 10.40 4 CO-ATL Atlántico 766.60 5 CO-DC Bogotá 39.90 6 CO-BOL Bolívar 76.20 7 CO-BOY Boyacá 55.10 8 CO-CAL Caldas 124.00 9 CO-CAQ Caquetá 5.00 10 CO-CAS Casanare 7.30 11 CO-CAU Cauca 45.00 12 CO-CES Cesar 42.20 13 CO-CHO Chocó 10.20 14 CO-COR Córdoba 63.30 15 CO-CUN Cundinamarca 102.30 16 CO-GUA Guainía 0.50 17 CO-GUV Guaviare 1.95 18 CO-HUI Huila 54.50 19 CO-LAG La Guajira 39.30 20 CO-MAG Magdalena 52.00 21 CO-MET Meta 10.20 22 CO-NAR Nariño 50.00 23 CO-NSA Norte de Santander 61.00 24 CO-PUT Putumayo 13.10 25 CO-QUI Quindío 297.90 26 CO-RIS Risaralda 223.50 27 CO-SAP San Andrés y Providencia 1410.00 28 CO-SAN Santander 65.80 29 CO-SUC Sucre 76.00 30 CO-TOL Tolima 58.90 31 CO-VAC Valle del Cauca 197.50 32 CO-VAU Vaupés 0.80 33 CO-VID Vichada 0.60

Luego usamos la función gvisGeoMap:

M2 = gvisGeoMap(DenPob, locationvar='Cod', hovervar="Dep", numvar = 'Densidad',

options = list(region='CO',dataMode="regions"))

Donde DenPob es la base, locationvar se usa para los códigos de los departamentos y numvar para la variable a graficar.

Luego graficamos:

plot(M2)

Si pasamos el mouse por encima de los departamentos veremos su nombre y el valor de la variable.

El resto de gráficos son mucho más sencillos que estos y los pueden mirar en la ayuda de la librería.

Comparte esto: