A blog about data, information and IT, by Mario Alberich

Jan 11
2010

Visualizando: Estadísticas de navegadores (II)

La primera parte es relativamente sencilla, teniendo el archivo XML generado en la hoja de cálculo.  Sólo hay que tener en cuenta de no olvidarse de los tags ... que engloban todo el contenido.  Pasamos al segundo paso.

Modificación del código


Para adaptar los anillos hay que ir a las líneas 148-149, donde se definen las variables innerRadius y outerRadius.  Aquí se define el valor del límite interno y externo de cada anillo.

En la versión original estos radios son constantes.  Pero ahora lo que hay que hacer es utilizar los atributos innerRadius y outerRadius generados en el archivo XML.  Los valores aquí ya tienen que ser absolutos, por lo que hemos de multiplicar los radios normalizados a 1 por el radio total del gráfico. Las líneas deben contener lo siguiente:

innerRadius="{radialLayout.currentDatum.innerRadius*radialLayout.height/2}"
outerRadius="{radialLayout.currentDatum.outerRadius*radialLayout.height/2}"

Describo brevemente los parámetros de las fórmulas:

  • Estamos recogiendo el valor de innerRadius (u outerRadius en la segunda) y los estamos multiplicando por la mitad de la altura de la caja donde se mostrará el gráfico.  Dado que el gráfico está centrado, dividimos la altura entre dos para conseguir el mayor radio posible. La altura total es el diámetro, por lo que su mitad es el radio.
  • Luego, dado que innerRadius y outerRadius en el XML son valores entre 0 y 1 (el innerRadius del anillo más interior es 0 y el outerRadius del anillo más exterior es 1) y son contiguos, los anillos toman su máxima medida posible para la caja del gráfico (radialLayout).


Aparte de estos cambios, he comentado las líneas 178-180 (etiqueta "January 2002" que aparecía en la parte central) y las líneas 121 a 123 (la etiqueta "August 2009", que aparecía en la parte exterior). Hay que tener en cuenta que el modo de comentario es XML, no ActionScript.

Compilación


Ya sólo queda generar el archivo SWF. Para ello es necesario que descargar Flex SDK (gratuito, precisa Java), instalarlo (se descomprime en un directorio, sin más) y compilar.  Abriendo una consola y situándote en el directorio "src" del ejemplo, pues compilar (en Linux) así:

/ruta/hasta/flex/bin/mxmlc BrowserMarketShare.mxml -include-libraries ../libs/DegrafaLibrary.swc ../libs/AxiisLibrary.swc

Compilando en Windows, el programa es mxmlc.exe, y las rutas a los directorios se indican con contrabarra (\).

Aparecerán algunos avisos pero todo funciona correctamente.  La última línea del proceso será algo así como:

/home/_usuario_/..../axiis examples/src/BrowserMarketShare.swf (568757 bytes)

Puedes abrir el archivo SWF en tu navegador y verás algo parecido a la siguiente imagen:

Axiis Browser Statistics: Anillos proporcionales al crecimiento

¿Todo bien? ¿Algo no ha funcionado? Si dejas algún comentario quizá lo aclaremos.  Clicando con el botón derecho en la versión de pantalla completa puedes ver el código del archivo MXML.

Queda un último apartado para comentar los resultados del gráfico, compararlo con el original, analizar qué podemos extraer de él, y valorar las ventajas e inconvenientes por los criterios que he seguido.

Tags

gestión documental 10     Recuperación información 11     Linux 7     Usabilidad 5     open source 3     Tagging 12     lógica borrosa 2     fuentes de información 12     Google 6     off-topic 6     spam 2     grafos 6     Web social 11     modelización 12     Productividad 11     buscadores 2     utilidades 17     Profesionales 9     SEO 5     estándares 3     veracidad 3     relevancia 2     lingüística 2     PLN 2     lenguajes documentales 2     apis-mashups 3     reseñas 7     Flash 7     Gráficos estadísticos 13     Publicidad 3     Innovación 5     muestreo estadístico 9     PHP 14     internet 2     testeo 12     desarrollo 3     visualizacion 36     javascript 16     datos abiertos 9     elecciones 2     simulación 5     html5 7     phing 9     ssh 2     seguridad 3     indicadores 2     demografía 3     media 2     algoritmos 7     shell 4     mysql 2     backup 2     big data 6     twitter 2     d3js 11     revealjs 2     metodología 6     data-journalism 6     smartcities 2     NYT 2     privacidad 3     benchmarking 4     recopilaciones 21     magento 5     formacion 2     github 2     HHVM 3     psicología 2     angularjs 3     grep 2     nodejs 5     promises 2     mapreduce 3     crossfilter 2     exploración de datos 2     machine learning 2    

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.