Hexágonos

Contando hexágonos en paralelo

Dicen que para realizar gráficos de dispersión con muchos datos no es desaconsejable usar celosías hexagonales. Por motivos que no vienen al caso, me interesa poder realizarlas en paralelo.

El código disponible en R (hexBinning de fMultivar o el de geom_hex de ggplot2) es feo, ininteligible y, en particular, no es paralelizable (o mapreducible). No lo es porque cada hilo, por diseño del algoritmo, crea hexágonos excéntricos.

Así que he desarrollado un algoritmo para crear celosías hexagonales paralelizable. Además, creo que es algo más inteligible que los dos mencionados y, me temo, igual de feo. Pero vectorizado, eso sí (es decir, sin un maldito bucle). Es así:

Patrones hexagonales con R

R

Navegando por internet di con el gráfico

(que puede encontrarse aquí) además de un enlace al código en Matlab usado para generarlo.

Diríase que lo programó un contable. Tratad de seguirlo y veréis por qué lo digo.

Y por entretenerme, traté de generarlo con R. Y creo que de una manera algo más intuitiva:

  1. Creo una función que sabe pintar un hexágono en una posición dada.
  2. Creo una retícula de centros de hexágonos del tamaño adecuado.
  3. Pinto finalmente un hexágono en cada uno de esos centros.

El código es