Unicode, ASCII, Shapes, Bins, LOD, Table Calc, Makeover Monday

Por: Rosario Gauna @rosariogaunag

Para la semana 24 del reto de Makeover Monday, Eva nos presentó una gráfica de “Índice de Densidad de Turismo”. Link al Reto

El índice representa la cantidad de turistas de un país comparado con el total de la población del país. Aquí se presenta la gráfica original del reto. Picture01Para mi rediseño, decidí utilizar dos gráficas, una por cada categoría de país. Y cada gráfica con su propio indicador:

  • “Overtourism”  número de turistas por cada persona local.
  • “Undertourism”  número de personas locales por cada turista recibido.

Como ambos indicadores tratan de número de personas, decidí utilizar imágenes o siluetas humanas para representar su valor.

En este blog se detallarán dos técnicas para lograr representar un valor en imágenes múltiples:

  • Técnica ¿Sólo Texto? con el uso de caracteres ASCII

Carácter ASCII 50883  웃o 웃U+C6C3

Picture02

  • Técnica de bins con el uso de shapes

Picture03

La primera técnica nos brinda la ventaja de ser muy sencilla y además de permitir combinar imágenes y palabras.

La segunda técnica, nos ofrece la ventaja de ampliar las opciones de imágenes posibles de donde elegir, sin embargo, considero que requiere deun poco más de trabajo.

TÉCNICA 1: ¿SOLO TEXTO?

En este ejercicio se trabaja con una versión más sencilla a la desarrollada en mi blog  ¿Pequeños Puntos Múltiples de Caramelo Solo con Texto?

Paso 1: Definir dos campos de texto con el carácter ASCII seleccionado como imagen.

La longitud del primero de los campos de texto deberá ser de igual o mayor tamaño al máximo valor a graficar. El valor máximo de acuerdo con los datos de este ejercicio es de 43. En las fórmulas utilizaré una definición de un campo de 50 caracteres.

El segundo de los campos se definirá de un solo carácter, el cual será utilizado para graficar el elemento del color opuesto contra el que se realiza el comparativo.

A continuación, se muestran dos de las formas posibles de definir los campos con el mismo carácter ASCII, pero diferente longitud de campo de texto, el primero de 50 caracteres y el segundo de sólo un carácter:

String = REPLACE(SPACE(50), ” “, CHAR(50883))
String of One = “웃”

Los siguientes pasos se enfocan en la definición de la primera de las gráficas: La gráfica de “Overtourism”.

Paso 2: Calcular el campo de texto “String Overtourism”.  El campo “String” se definió de 50 caracteres y se va a crear un nuevo campo de texto limitando su longitud al indicador de la proporción de número de turistas por cada persona local.

String Overtourism =

Left([String], ROUND([Locals Outnumbered By Tourists By], 0))

Paso 3: Filtrar utilizando el campo de “Category” y seleccionar los elementos con el valor de “Overtourism”.

Paso 4: Seleccionar el gráfico de “Text” y mover a los estantes de:

  • Rows ⬅ “Country” y ordenar por “Rank”
  • Text ⬅ “String Overtourism” y “String of One”
  • Tooltips ⬅ “Locals Outnumbered By Tourists By”, “Number Of Locals” y “Number Of Tourist”

Paso 5: Seleccionar el estante de “Text” y ajustar colores y redacción de acuerdo con sus preferencias.

Picture04

Paso 6: Seleccionar el estante de “Tooltips” y ajustar colores y redacción de acuerdo con sus preferencias.

Picture05

Con el paso 6 se concluye la definición de la primera de las gráficas.

A continuación, se sigue con el procedimiento de la segunda de las gráficas: “Undertourism.

Paso 7: Calcular el indicador de la proporción de personas locales por cada turista recibido.

Locals By Tourist =   [Number Of Locals] / [Number Of Tourists]

Paso 8: Calcular el campo de texto “String Undertourism”.  Si recuerdan el campo “String” se definió de 50 caracteres y se debe crear un nuevo campo limitando su longitud al indicador de la proporción de número de personas locales por cada turista recibido.

String Undertourism =  Left([String], ROUND([Locals By Tourist], 0))

Paso 9: Repetir el procedimiento de los pasos 3 al 6, sustituyendo los datos de “Overtourism” con los datos de “Undertourism” para crear la segunda gráfica.

¡Listo!  Sencillo ¿Verdad?  Link a Tableau Public

Picture06

TÉCNICA 2: USO DE BINS

El utilizar esta técnica nos ofrece la posibilidad de ampliar ilimitadamente las opciones de imágenes posibles de donde elegir.

Paso 1: Definir el campo de “People”.En esta técnica consideré conveniente que los indicadores de “Overtourism” y de “Undertourism” se manejarán en una sola variable denominada “People”, en lugar de dos indicadores.

Es decir, el cálculo de la variable “People” dependerá de la categoría del país. En el caso de que la categoría sea “Overtourism” indicará el número de turistas por cada persona local y en caso contrario, indicará el número de locales por cada turista recibido.

People = IIF([Category]=”Overtourism”,

ROUND([Number Of Tourists] / [Number Of Locals], 0),

ROUND([Number Of Locals] / [Number Of Tourists], 0))

Paso 2: Definir el campo “People Adjusted”. Este campo será utilizado para crear el bins, para lo cual necesito asegurar, que al menos un registro tenga el valor de uno y al menos un registro tenga el valor máximo más uno.

People Adjust =

IIF([People] =

{FIXED : MIN([People])}, 1,

{FIXED : MAX([People])} + 1)

Dentro de la fórmula se utilizan dos cálculos LOD. Uno para obtener el valor mínimo y otro para obtener el valor máximo de la variable “People”.

Al país que coincida con el valor mínimo se les asignará el valor de uno.

¿Por qué al valor de uno? Para asegurar que el bins siempre empiece en uno.

Al resto de los países se les asignará el valor máximo + 1.

¿Por qué al valor máximo se le suma uno? Para incluir una imagen adicional por país, con el color opuesto para representar la comparación del indicador.

Paso 3: Crear el campo de Bins.

Seleccionar el campo “People Adjusted” y con el botón derecho elegir la opción de crear “Bins”. El campo Bins creado tendrá un valor mínimo de 1 y un valor máximo de 44.

Proceder ajustar el tamaño del bins a 1.

Picture07

Paso 4: Definir el campo “People By Country”. Este cálculo nos permite tener en cada uno de los bins del país el valor del número de “People”.

Si se utilizará el campo de People directamente en el tooltips o en cualquier otro cálculo, sólo uno de los bins tendrá información (Sólo el bins que corresponda al valor del país) y en el resto de los bins el valor será nulo.

Por lo cual se crea el campo “People by Country” para contar para cada bins la información de “People”, al tomar el valor máximo de la variable considerando un cálculo de “Table (across)”.

People by Country = WINDOW_MAX(SUM([People]))

Paso 5: Definir el campo “People Filter”.Dado que en todos los bins desplegarían una imagen, este cálculo nos permite filtrar para mostrar sólo las imágenes que corresponden al valor del indicador del país.

People Filter = RUNNING_SUM(1) <= [People by Country] + 1

Después de creado el campo se aplica como filtro seleccionando los de valor “True”.

Paso 6: Definir la variable “Is Last?”. El campo nos ayudará a identificar el último elemento desplegado para cada país.

Is Last? = RUNNING_SUM(1) = [People by Country] + 1

Paso 7: Seleccionar el tipo de gráfico de “Shape” y elegir la imagen a utilizar. Para este ejercicio elegí una de las imágenes de la categoría “Gender” del catálogo de Shapes de Tableau.

Mover a los estantes de:

  • Rows ⬅  “Category” y con el click derecho deseleccionar la opción de “Show Header”
  • Rows ⬅ “Country” ordenar por “Rank”
  • Tooltips ⬅  las dimensiones que desee incluir
  • Tooltips ⬅  las medidas que desee incluir (recordar calcularlas con WINDOWS_MAX para asegurar que en cada bins se muestre su valor)

Paso 8: Definir el color de acuerdo con los valores combinados de las dimensiones de “Category” y de “Is Last?”:

  • Color ⬅“Category”
  • Tooltips ⬅ “Is Last?”
  • Seleccionar el icono a la izquierda de la variable “Is Last?” y cambiar la opción de “Tooltips” por la opción de “Color”. Proceder a ajustar colores.

Picture08

Paso 9: Duplicar el sheet.

Paso 10. Ocultar o excluir en cada una de las gráficas los países que no se desean listar.

Hay que tomar en consideración que en el caso de la gráfica de “Overtourism” el máximo bins a mostrar es de 15, en cambio en “Undertourism” el máximo valor es de 44.

En el caso de manejar gráficas independientes, el tamaño de las imágenes se ajusta al máximo valor de bins utilizado, por lo cual, en la gráfica de “Overtourism” las imágenes serán de mayor tamaño al de las de “Undertourism”, a menos que apliquemos algún pequeño truco para mantener la sincronía entre ambas gráficas.

Esto con el objetivo de cumplir con una de las lecciones con que Eva y Andy nos refuerzan cada semana “La lección de ejes iguales”. Aunque en este ejemplo propiamente no se tratan de ejes, considero que también aplica y se debe mantener la sincronía en distancias y tamaño de las imágenes.

Si desean profundizar en el significado del tema de “ejes iguales”consulte la lección 1 del blog de Eva de la  Week 24: Tourism Density Index

Para mantener el tamaño sincronizado entre ambas gráficas, se puede utilizar uno de las siguientes opciones:

Opción A – No excluir el país con mayor valor de bins y cubrirlo con otro elemento del tablero.

Es decir, no ocultar o no filtrar el país con el mayor valor y ordenar la gráfica para que aparezca en la parte inferior de la gráfica.

Posteriormente, en el tablero utilizar al menos un elemento flotante para sobreponer y cubrir solo la última línea que corresponde al país de mayor valor.

En mi ejercicio sobrepuse dos elementos:

  • Primero: Un elemento “Blank”.
  • Segundo: La parte superior de la gráfica de “Undertourism”.

Opción B –Otra forma de ajustar, es reducir el ancho de la gráfica con menor número de bins mostrados, hasta lograr el efecto de distancias y tamaños de las imágenes se sincronicen con la gráfica con mayor número de bins.

Paso 11: Seleccionar el estante de “Tooltips” en cada gráfica. Ajustar redacción y colores a su preferencia.

Paso 12: ¡Terminamos!  Link a Tableau Public 

Picture10

Una vez repasadas las dos de las técnicas ¿Cuál técnica prefieres? y/o ¿Cuál técnica se adapta mejor a tus necesidades?

Aprovecho para agradecer a Eva y Andy por ofrecernos cada semana, retos interesantes en Makeover Monday.

Si tiene alguna pregunta, no dudes en ponerte en contacto conmigo en Twitter (@rosariogaunag)

¡Saludos!

Rosario Gauna

 

Advertisements