SOLUCION AL RETO DE LA SEMANA 10 DE #WORKOUTWEDNESDAY 2018

% of total , reto , sunburst , table calc , LOD calc , Workout Wednesday

Por: @rosariogaunag

En la semana 10 de Workout Wednesday, @LukeStanke nos tenía preparado un reto muy especial : “KEEP AN EYE ON SALES”. Link al Reto

Para mí, que nunca había trabajado con una gráfica radial acumulada, creo que simplemente al leer los “spoiler” me bloqué, hace tiempo no sentía esa desagradable sensación de no saber cómo empezar.

Luke nos proporcionó dos fórmulas como spoiler:

Radius * COS(2 * PI() * [Percent of Circle]) will return your Y-axis

Radius * SIN(2 * PI() * [Percent of Circle]) will return your X-axis

Y después de ver los spoilers, digo OK, ya tengo las fórmulas y ahora la pregunta es, ¿Qué variables voy a meter allí?

Al inicio busqué en blogs de gráfica radiales, aunque muy buenos, también eran blogs que fueron redactados para la utilización de múltiples parámetros de configuración, lo cual, necesariamente aumentaba la complejidad de las fórmulas utilizadas y aumentaba mi confusión.

Tuve que dar un vistazo al trabajo de @VizWizBI, para quitarme el bloqueo y generé una primera versión.

Ya después de esta primera versión, quise darme tiempo para asimilar el reto y con ayuda de @ebautistag, tratamos con la experiencia ganada, empezar el reto de cero nuevamente. Es decir, tratar de entender las variables de la siguiente gráfica. 

 Circunferencia

Y a continuación les compartiré la solución que obtuvimos:

Paso 0: Entender que variables necesitamos para las fórmulas.

Percent of Circle: Está variable está determinada por:

  • El número de la semana graficada
  • El número total de semanas
  • El requerimiento que la semana 1 debe estar en la posición de las 12:00

 

Radius: Está variable está determinada por:

  • El porcentaje de ventas de cada segmento
  • El porcentaje de ventas acumulado de los segmentos previos.
  • Los espacios de 0.15 dejados entre cada segmento
  • Y los valores mínimos de 1 y máximo de 2.3 indicado por Luke.
  • La diferencia de:
    • Rango final de 2.3, menos
    • Rango inicial de 1.0, menos
    • Dos espacios de 0.15 entre segmentos o un 0.30 del total de espacio
    • Nos deja un valor de 1, para distribuir cada segmento en función de su porcentaje de sus ventas.

Paso 1: Para cada línea de segmento se requieren de dos puntos.

Por lo cual, se necesita crear la unión de la tabla de datos de Superstore consigo misma, esto para contar con dos “marks” para cada segmento-semana. ¿Por qué? Porque la primera “mark” es el punto con el inicio de la línea y la segunda “mark” es el fin de la línea que representa el % de ventas del segmento.

Utilizamos la unión dentro de Tableau, la cual crea un nuevo campo llamado “Table Name” con los valores “Orders” y “Orders1”.

Paso 2: Calcular el campo de “Percent of Circle”. Se calcula la posición dentro del circulo en función al número de semana a graficar. Como si se tratara de una manecilla de reloj y se le tuviera que indicar los 52 puntos a detenerse.

Percent Circle =

(DATEPART(‘week’,[Order Date]) – 1) / 52

Paso 3: Calcular el Porcentaje de las Ventas de Cada Segmento. Utilizamos un cálculo LOD para calcular por segmento las ventas y dividirlo entre el total de las ventas al excluir el segmento.

% Sales by Segment =

{INCLUDE [Segment]: SUM([Sales])} / {EXCLUDE [Segment]: SUM([Sales])}

Paso 4: Calcular el Porcentaje de las Ventas de Acumuladas hasta el Segmento Previo. Se calcula el acumulado de los porcentajes de ventas por segmento y se le resta el valor del segmento actual. Este es un cálculo de tabla “using [Segment]”

% Accumulated Previous =

RUNNING_SUM(SUM([% Sales by Segment])) – SUM([% Sales by Segment])

Paso 5: Calcular Radius. En este cálculo se deben tomar en consideración

CONSIDERACIÓN FORMULA
El valor mínimo establecido por Luke de 1 1 +
Los espacios de 0.15 entre cada segmento CASE ATTR([Segment])

WHEN “Corporate” THEN 0

WHEN “Consumer” THEN 1

ELSE 2

END * 0.15

El % de ventas acumulado previo + [% Accumulated Previous]
Si está graficando el primer o segundo punto de cada segmento para acumular o no el valor del porcentaje de ventas del segmento + IIF(ATTR([Table Name])=”Orders”,0,1) * SUM([% Sales by Segment])

 

Paso 6: Calcular “x”

            X = [Radius] * ATTR(SIN(2*PI()*[Percent of Circle]))

 

Paso 7: Calcular “y”

            Y = [Radius] * ATTR(COS(2*PI()*[Percent of Circle]))

 

Paso 8: Mover al estante de

  • Detail -> la semana -> DATEPART(‘week’, [Order Date])
  • Color -> la variable “Segment”. Y ordenar los segmentos 1) Corporate, 2) Consumer y 3) Home Office

Paso 9: Mover al estante de columnas la variable “x” y al estante de renglones la variable “y”. 

Aplicar a ambas variables la opción de Cálculo de Tabla utilizando la opción de “Compute Using” Segment.

Paso 10: Seleccionar gráfico de líneas y mover al estante de Path -> la variable “Table Name”

Paso 11: Solo ajuste colores y formatos y Filtre o seleccione datos del 2017. Listo!

Link a Tableau Public

Screen Shot 2018-03-09 at 4.37.58 PM

Espero que esta recapitulación, les ayude a ustedes, tanto como a mí, a tomar confianza en el manejo de gráficos radiales.

Para estar listos para los próximos retos que nos tengan preparados en un futuro @RodyZakovich o @LukeStanke con gráficos radiales.

Advertisements