Observando el gráfico, se puede encontrar una analogía con los anillos de un tronco de árbol. Los datos que muestra se refieren a las estadísticas de navegadores de w3schools.com (W3S) desde Enero de 2002 hasta finales del 2009. Empezando desde el centro, cada anillo representa el porcentaje de un intervalo de tiempo determinado. Navegando por la versión Flash se puede ver el mes/año, el navegador de cada arco y su porcentaje de penetración.
Sin embargo, hay una serie de cuestiones que me interesaron en aras a mejorar el resultado final:
Los datos de W3S no incluyen el volumen (ni real ni estimado) de usuarios conectados a Internet. Por lo tanto, hay que buscar fuentes complementarias. Sin entrar en criterios estrictos de veracidad ni fiabilidad, he seleccionado la fuente Internet Growth Statistics del Internet World Stats. Para el objetivo que me ocupa, es suficiente.
Como se puede comprobar en el enlace, los datos distan de ser concretos. Para acabar de arreglarlo, las series de datos no concuerdan con las del W3S. En este punto tenemos dos opciones: seguir buscando, o echar mano de la hoja de cálculo y algunas fórmulas matemáticas. Opto por la segunda.
Una vez organizados los datos, queda unificar las series. ¿Cómo podemos llevarlo a cabo? Por interpolación. La ventaja es que es un proceso relativamente sencillo, y el inconveniente es que sacrificamos algunos datos (pocos) de la serie.
En este caso he escogido la interpolación lineal. Muy probablemente no sea la mejor (¿lo será la cúbica?): en este caso es útil y suficiente.
Para realizar interpolación entre fechas, éstas se convierten en valores numéricos (por ejemplo, días transcurridos desde el 1/1/1970). Otros dos detalles que considero son:
Para obtener esta diferencia, sacrifico otro dato del inicio de la serie. (ya van tres) Al precisar la diferencia respecto al anterior, el primero (que se supone que no tiene anterior) se cae de la lista.
Podría solucionar este detalle utilizando la cifra absoluta (el número de usuarios al iniciar ese periodo) para dibujar el círculo más interior del gráfico,. Sin embargo, lo descarto porque eso supone perder un espacio considerable. Se puede comprobar que el primer círculo sería proporcional a unos 500 millones de usuarios, mientras que el resto de anillos tienen un crecimiento mucho inferior (una décima parte en los mejores casos).
Hay otra razón para escoger el criterio de la proporción por área: representar el crecimiento actual en relación al pasado. Esto es algo interesante porque el grueso del tronco nos muestra la velocidad de crecimiento. Si este mismo gráfico se realizara con barras o columnas relativas (ocupando una misma altura, ajustando la anchura al crecimiento de usuarios, y repartiendo el área proporcionalmente), el efecto visual de las columnas "anchas" sería mucho más acusado.
En cambio, al repartirse por un área concéntrica que aumenta de radio, lo visualmente constante (anillos de un mismo grueso) es el crecimiento respecto al anillo anterior, que no el crecimiento en sí. Por ejemplo, revisando los datos se puede comprobar que los anillos interiores crecen a un ritmo de 15-20 millones de usuarios, a pesar que se ven gruesos. En cambio, los anillos más exteriores, que parecen normalitos están creciendo a un ritmo de 40 millones de usuarios. Esto quiere decir que requiere más esfuerzo aumentar el radio en cada anillo más exterior. Es un comportamiento habitual, por ejemplo, al analizar las tasas de crecimiento de las empresas. Y es algo directamente relacionado con la viralidad de este medio (el efecto red una teoría algo criticada).
La pregunta es: ¿Se está engañando? No: se está centrando el mensaje en la tasa de crecimiento. Volviendo a la analogía de los anillos del árbol, podemos suponer que el tronco parezca mantener un crecimiento gradual. Pero lo que está sucediendo es que el tronco crece proporcionalmente un poco más rápido... ocupando el mínimo espacio posible. En el gráfico sucede lo mismo: si utilizáramos barras, el espacio de representación sería mucho mayor y quitaría importancia a los primeros datos de la serie.
Como efecto derivado, en este gráfico podemos ver el efecto de la "viralidad" de los navegadores. Siguiendo la analogía del tronco, el gráfico muestra el cambio de nutrientes del substrato que es el mercado de los navegadores.
Ahora debo deducir el radio para que el círculo ocupe este área. Para ello, tengo que invertir la fórmula del área del círculo: A = π·r2. Pero ojo, tengo que restar siempre el área de los anillos interiores. Por lo tanto, calculo los radios de dentro hacia a fuera.
Para saber el radio del nuevo anillo debo:
r = sqrt(a+A), donde:
Dado que hemos supuesto que el área del círculo es 1, la suma de los radios no equivaldrá a uno (en realidad es de unos 0,564...). Esto es correcto: lo podemos comprobar calculando el área del círculo con radio 0,564... y nos dará como resultado 1.
Y finalmente, el último paso: debemos estirar los radios para que el total sea 1. ¿Por qué? Pues para poder calcular con más facilidad los radios del gráfico en la pantalla. Esto es sencillo: basta dividir cada fragmento de radio por 0,564..., y ya tenemos los radios proporcionados a 1. Lo que estoy haciendo aquí no es más que normalizar: ajustar una serie de valores a una medida global concreta. (la norma) Es importante no confundir con estandarizar (convertir un valor de una distribución normal a la normal estándar de media 0 y desviación 1).
Con este cálculo y algunas manipulaciones de texto en la hoja de cálculo, ya tenemos un archivo XML similar al original. Sólo he añadido los valores del radio interno (la suma de radios interiores) y externo (interiores + radio del anillo). También muestro en la etiqueta de cada sector (navegador del periodo concreto) el número total de usuarios que aumentan en cada anillo, para que sea más fácil comprobar las diferencias entre las cifras y el efecto visual.
El siguiente paso es modificar el código del ejemplo original (para adaptar los radios y cambiar algunas etiquetas) y ya podremos compilar. En el siguiente artículo comento las modificaciones y el resultado.
© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.