Paleta de colores para datos electorales en México

Algunos mapas electorales en Estados Unidos utilizan un espectro de colores entre azul y rojo para representar territorialmente la fuerza política de los partidos Demócrata y Republicano, respectivamente. De ahí que los Estados donde ambos partidos tienen una presencia importante se denominen “purple states”: el color púrpura resulta de combinar los colores azul y rojo. Por ejemplo, el mapa de abajo representa los resultados de la elección presidencial de 2008 en Estados Unidos por county. ¿Cómo podríamos representar de manera similar la fuerza territorial de los partidos políticos en México?

Gastner_map_purple_byarea_bycounty

El principal problema para replicar este mapa es que en México existen tres partidos políticos importantes, por lo que una paleta divergente de dos colores resulta inapropiada. Existen, sin embargo, dos alternativas. La primera es utilizar una paleta de colores secuencial para cada partido político, como los mapas que elaboraron Beatriz Magaloni y Alberto Díaz-Cayeros en este interesante documento sobre la elección presidencial de 2012. La otra alternativa es elaborar un mapa de patrones de competencia, como en este ingenioso mapa de Diego Valle.

Así pues, el reto consiste en encontrar una solución que combine las ventajas de los mapas del párrafo anterior. Dicha solución puede ser el modelo RGB de color. Este modelo se puede utilizar para colores divergentes en tres dimensiones, precisamente el número de dimensiones necesarias para representar a los tres principales partidos políticos en México.

AdditiveColor.svg

Este modelo utiliza como colores primarios al Rojo, Verde y Azul.

Sin embargo, el modelo RGB tiene una desventaja para nuestra aplicación: si bien los colores primarios azul y rojo tienen una asociación directa con el PAN y el PRI, el verde no tiene relación con el PRD. De hecho, en el modelo RGB, el amarillo –que normalmente se asocia con este último partido– resulta de combinar al rojo y al verde, por lo que la paleta puede causar confusión.

Color_mixture.svg

Este modelo utiliza como colores primarios al Rojo, Amarillo y Azul, los mismos colores con los que se asocian a los partidos políticos en México.

Existe otro modelo (que ahora es caduco en la teoría del color) que incluye al color amarillo: el modelo RYB. Este modelo utiliza como colores primarios al Rojo, Amarillo y Azul, los mismos colores con los que se asocia al PRI, PRD y PAN, respectivamente.

Desafortunadamente, el modelo RYB no esta implementado en R, un software estadístico suficientemente flexible como para diseñar una paleta tridimensional en un mapa (hasta donde sé, ArcMap no permite elaborar una paleta divergente en tres dimensiones). R incluye la función rgb(), por lo que una solución elegante sería escribir una función que transforme el modelo RGB a RYB.

Dicha función existe en Python (escrita por Arah Leonard). En esta página del blog se encuentra una función –escrita por su servidor– que traduce el código de Leonard a R. La función (denominada ryb2rgb.R) se puede implementar de la siguiente manera:

source("ryb2rgb.R")
ryb <- t(apply(data*255,1,ryb2rgb))
colores <- rgb(ryb, alpha=250, max=max(ryb))

Luego, el objeto “colores” contiene la paleta divergente RYB traducida a RGB.

Con el propósito de contrastar los modelos RGB y RYB, la gráfica de abajo muestra dos ternary plots con el voto para los principales candidatos presidenciales en 2012 por municipio (Javier Aparicio explica aquí de manera simple este tipo de gráficas).

triplots

Desde mi punto de vista, la gráfica de la derecha es más fácil de interpretar que la de la izquierda. En el modelo RYB, el amarillo representa a los municipios con un alto grado de apoyo a AMLO, mientras que en el modelo RGB representa a los municipios que apoyaron de manera similar a AMLO y a EPN.

El ternary plot puede utilizarse como leyenda en un mapa. El producto final se muestra en este otro post.