Construyendo un mapa de mosaico con cálculos de tabla para el Workout Wednesday (2019-10)

Enlace con los requerimientos aquí
Mi resumen aquí
El reto de Ann Jackson es sencillo, pero contiene bastantes detalles: Lo voy a dividir en dos secciones principales:
  1. Obtención de los datos.
  2. Obtención del mapa y formato.
El libro con el paso a paso está al final de este post.

Datos necesarios

El objetivo es mostrar en un mapa la variación en el ratio de beneficio (relación de ganancia)…

  • por estado,
  • de un año al siguiente,
  • usando únicamente los dos últimos años.

El mapa no es un mapa al estilo clásico, sino en mosaico: colocando cada estado, más o menos, en una posición reconocible (y acercando Hawaii y Alaska). En la descripción del reto, Ann sugiere usar como guía este post de Brittany Fong. Además, Ann usa un etiquetado especial (la abreviatura de dos letras) para cada estado. Sugiere usar un campo calculado para obtenerlo, pero yo prefiero optar por una unión con una fuente de datos que contenga este campo.

En resumen, los datos necesarios son…

  1. Posición x e y de cada estado en el mosaico final (hoja de excel con las posiciones de cada estado basada en el post de Brittany Fong).
  2. Abreviatura de dos letras para cada estado (hoja de excel descargada de  Scott on Technology) .
  3. Ratio de beneficio.
  4. Año.

La manera más sencilla de obtener todos los datos necesarios es, desde mi punto de vista, combinando toda la información en una misma tabla directamente en Tableau (realizando una unión (left join) sobre el campo de “state”; tab 00).

diagram of the selected joins
Left Join on State

Una vez incorporados los datos en Tableau me gusta, a menudo, incluir todos los campos necesarios para la vista final–pero trabajando en formato tabla para comprobar que todo está funcionando como esperaba. En este caso, bien sencillo, incluyendo estado en la parte superior, junto con las posiciones x e y (row y space en los datos originales), la abreviatura de dos letras y los años (01).

El siguiente paso es obtener el cálculo de taba para obtener el cambio respecto al año anterior. En este caso, he optado por un filtro de fechas (order date) relativo (los tres últimos años, dado que llegan hasta el 2018), junto con el cálculo de tabla relativo al año anterior (03).

Únicamente seleccionado el "año del pedido".

Para añadir los indicadores del cambio respecto al año anterior (incrementado  ▲, disminuido  o mantenido ), se puede optar por un campo calculado adicional, o, simplemente, cambiando el formato de número personalizado a uno que contenga los símbolos deseados (en este caso, ▲#,##0%;▼#,##0%; la primera parte antes del punto y coma es el formato de los números positivos; la segunda parte, de los números negativos; y la tercera, del cero 04).

Indicadores del cambio respecto al año anterior
Formato personalizado de número: ▲#,##0%;▼#,##0%;─

Con esto ya tenemos toda la información necesaria para construir la vista final:

Ejemplo de Alabama con los campos de estado, space, row, año y ratio de beneficio
Todos los campos necesarios para la construcción de la vista final

Ahora sólo queda reorganizar los campos, cambiar el tipo de marca, añadir formatos, etc.

Obtención del mapa

No se trata de un mapa real, sino de una representación en cuadrícula o mosaico. Cada uno de los estados va a ocupar un cuadrado del mismo tamaño que el resto de estados con una posición relativa más o menos cercana a la realidad. La cuadrícula o rejilla se compone de los campos “space” y “row”, y la posición de cada uno de los estados se hace mediante asignación manual (en este caso) a las coordenadas seleccionadas (por ejemplo, Alaska ocupa la posición 1, 1; mietras que Iowa ocupa la posición 4, 6).

Ejemplo de la cuadrícula con Alaska en posición 1, 1 y Iowa en posición 4,6
Cuadrícula de base para el mapa en mosaico

La fuente de datos  con las coordenadas de los estados para el mosaico contiene esa asignación manual realizada por Brittany Fong en este post.

 Creando una medida de relleno (como por ejemplo “min(0)”) podemos cambiar el tipo de marca a cuadrado de modo que todos los estados tengan el mismo tamaño, y usar ese cuadrado para poner el texto de interés.

En el ejemplo de Ann Jackson, cada estado tiene dos cuadrados, uno para cada año. Con el más reciente (2018) superpuesto sobre el más antiguo (2017) y de ligeramente menor tamaño. Esto se traduce en que el año de la fecha del pedido debe ir a la bandeja de tamaño, con los tamaños asignados de manera que 2017 sea mayor que 2018. Por defecto, el orden es ascendente (2017 el de menor tamaño, y 2018 el de mayor). Cambiando el orden se consigue el efecto deseado en el tamaño, pero tiene la consecuencia de que hay que cambiar la configuración del cálculo de tabla para que no compare con el año anterior, sino con el año siguiente (dado que, al cambiar el orden, el año que sigue a 2018 es 2017).

Permitiendo que haya superposición, pero restringiendo el texto a las marcas "más recientes"
Configuración del panel de texto para mostrar únicamente los más recientes

Un último detalle para que se muestre el texto del año relevante (2018, el más reciente con datos) es permitir que haya superposición de las marcas. Esto haría que también se mostrasen las de años previos. Para evitarlo, dado que estamos trabajando con un campo de fecha, se puede seleccionar que únicamente se visualice el texto en las marcas “más recientes”.

El resto de ajustes son básicamente cambios de formato. Cabe destacar que una opción para incluir la separación homogénea entre los distintos cuadrados es duplicar las píldoras de “space” y “row”, añadiendo las líneas de separación de los paneles al nivel más interno posible. Esta es una opción porque todas las filas, y todas las columnas, tienen algún miembro con lo que, aunque lo mantengamos como “discreo” no habrá espacios perdidos. Si no, probablemente habría que recurrir a una medida continua y jugar con los distintos tamaños hasta que el espacio fuera el deseado.

Cambios de formato en el tilemap
Cambios de formato

Tilemap paso a paso

Los 16 pasos que he seguido, a continuación. Mi solución final, en Tableau Public.