Gobernantza Publiko eta Autogobernu Saila

Visualización de datos sobre indicadores de presión turística: cuadro de mando

Fecha de publicación: 

Durante las jornadas sobre Datos abiertos y ciudadanía celebaradas en el edificio Tabakalera de Donostia-San Sebastián durante los días 13, 14 y 15 de noviembre de 2019, Mikel Madina, profesor de la Universidad de Deusto, nos mostró cómo llevar a cabo una visualización de datos sobre indicadores de presión turística con la herramienta Tableau.

1. Introducción

A continuación se recogen los pasos para crear con Tableau Public un cuadro de mando con el que visualizar los indicadores de presión turística C.1.1 y C.1.3 definidos por la Comunidad Europea, que se usaron a modo de ejemplo durante el el workshop “Visualizar datos abiertos” impartido dentro de las jornadas “Datos abiertos y ciudadanía” en noviembre de 2019 en Tabakalera.

Después de recoger y prepar los datos, ahora explicamos cómo crear un cuadro de mando que nos ayude a detectar patrones generales tanto geográficos como temporales en torno a los dos indicadores de presión turística seleccionados.

2. Cuadro de mandos final

El resultado final de este ejercicio puede verse en esta dirección de Tableau Public.

El cuadro de mando consta de los siguientes elementos:

2.1 Parámetro

El parámetro permite al usuario seleccionar el indicador que quiere analizar.

2.2 Mapa

Mapa coloreado por zonas geográficas que permite al usuario seleccionar una o más zonas geográficas para analizar.

Mapa coloreado por zonas geográficas que permite al usuario seleccionar una o más zonas geográficas para analizar.

2.3 Graficos de evolución temporal

Estos dos gráficos permiten observar la evolución temporal del indicador seleccionado para la/s zonas/ seleccionada/s, a distinto nivel de detalle.

2.3.1 Gráfico con evolución anual

Gráfico con la evolución anual

El color de cada cuadrado indica si el indicador ha crecido o decrecido con respecto al año anterior. Además, si la base de datos no recoge todos los datos de un año dado (es el caso del año 2019 en el momento en el que se impartió el workshop) el cuadrado no tiene relleno.

Para añadir algo de contexto, se muestran los valores máximo y mínimo para cada una de las zonas geográficas.

2.3.2 Evolución mensual

Gráfico con la evolución mensual

Similar al anterior. En este caso, tenemos una marca para cada mes, con estas características:

  • El tamaño del punto está mapeado al valor del indicador
  • El color del punto indica si el indicador ha crecido o decrecido con respecto al mismo mes del año anterior (por ejemplo, enero de 2019 con respecto a enero de 2018).
  • Se muestran los valores máximo y mínimo para cada una de las zonas geográficas.

2.4 Gráfico de barras

Gráfico de barras

Este gráfico muestra el valor del indicador seleccionado para cada zona geográfica seleccionada, para el último año con datos disponibles en el dataset. Se muestra con un gráfico de barras para poder comparar mejor las zonas geográficas entre sí.

2.5 Cuadro de texto

Con información adicional sobre el proceso de creación del cuadro de mando.

Cuadro de texto con información adicional sobre el proceso de creación del cuadro de mando

3. Cargar y combinar fuentes de datos

Para crear este cuadro de mando necesitamos tres de las fuentes de datos que hemos preparado anteriormente con Tableau Prep:

  • todo.csv: fichero con los datos de pernoctación, plazas ofertadas y habitantes por zona geográfica, año y mes.
  • municipios_por_zonas_geograficas.csv: fichero con los territorios históricos, zonas geográficas y municipios, que usaremos para poder crear el mapa (que tiene los datos a nivel de municipio, pero no de zona geográfica).
  • CB_MUNICIPIOS_5000_ETRS89_mikel.zip: esta versión del archivo disponible en Open Data Euskadi está modificada para que los nombres de los municipios coincidan con los de municipios_por_zonas_geograficas.hyper (las modificaciones se han realizado con QGIS, ya que Tableau Prep no permite cargar archivos espaciales).

3.1 Fuente de datos todo extracción

Al cargar el archivo todo.hyper se configura automáticamente esta fuente de datos. No hace falta realizar ninguna modificación, ya que ya las realizamos al preparar los datos.

3.2 Fuente de datos Extract+ (varias conexiones)

En esta fuente de datos vamos a combinar los datos espaciales para que se puedan usar a nivel de zona geográfica.

  • Cargamos el archivo municipios_por_zonas_geograficas.hyper.
  • Añadimos el archivo espacial CB_MUNICIPIOS_5000_ETRS89_mikel.zip

Unimos los dos archivos con una unión a la izquierda (si municipios_por_zonas_geograficas.hyper está a la izquierda), usando las variables municipio y Nombre Top con el operador de igualdad.

Unimos los dos archivos con una unión a la izquierda (si municipios_por_zonas_geograficas.hyper está a la izquierda), usando las variables municipio y Nombre Top con el operador de igualdad.

3.3 Editar relaciones de fuentes de datos

Finalmente, tenemos que crear una relación entre las dos fuentes de datos que hemos configurado en los pasos anteriores, para que los datos de una fuente se entiendan con los de otra fuente (en terminología de Tableau, data blending).

Desde la interfaz de creación de vista, accedemos desde el menú a Datos > Editar relaciones y configuramos las siguientes relaciones:

  • Fuente principal: todo extracción
  • Fuente de datos secundaria: Extract+ (Varias conexiones)
  • Modo: automático.

Los campos th y Zona geográfica Corregida tienen que aparecer en la zona de relaciones.Pantalla de Relaciones de Tableau

4. Gráficos

4.1 Mapa

Para crear el mapa, seleccionamos la fuente de datos Extract+ (Varias conexiones) y configuramos el mapa de la siguiente forma:

  • Geometría a Detalle
  • Zona geográfica Corregida a Color

Configurar el mapa en Tableau

El archivo espacial tiene los contornos de los municipios, que hemos agregado a nivel de zona geográfica al traer esta variable a la vista, por lo que el mapa muestra todos los límites municipales (aunque no disponemos de datos a ese nivel de desagregación). Para eliminarlos de la vista, tenemos que eliminar los límites de las marcas desde el canal de Color. Los límites municipales volverán a verse cuando pasemos el ratón por encima de un municipio (para eliminar este efecto deberíamos combinar las formas espaciales en un programa como CGIS).

Configurar el mapa en Tableau, paso 2

El mapa va a servirnos para seleccionar las zonas geográficas que queramos analizar en el cuadro de mando. Como los datos están limitados a Euskadi, podemos eliminar la información geográfica que nos ofrece Tableau. Para centrar toda nuestra atención en las zonas geográficas, vamos a realizar las siguientes modificaciones:

  • Mapa > Capas de mapa: deseleccionamos todas las capas.
  • Mapa > Opciones de mapa: desmarcamos todas las opcionesConfigurar el mapa en Tableau, paso 3

Finalmente, para que el mapa destaque como una zona especial en el cuadro de mandos, vamos a asignarle un color de fondo distinto al blanco.

  • Formato > Sombreado... > Hoja > Predeterminado > Hoja de trabajo: asignamos un color suave pero que se distinga del blanco.Configurar el mapa con Tableau, paso 4

4.2 Evolución anual

Este gráfico muestra una marca por cada zona geográfica (11) y año (9), por lo que tendremos un máximo de 99 marcas (más adelante crearemos una acción de filtro para filtrar según la selección del usuario).

La configuración básica del gráfico queda así:

  • Seleccionamos la fuente de datos todo extracción
  • Filas: Th y Zona geográfica Corregida
  • Columnas: Año(Fecha)
  • Tipo de marca: CuadradoEste gráfico muestra una marca por cada zona geográfica (11) y año (9), por lo que tendremos un máximo de 99 marcas

4.2.1 Crear campos calculados

4.2.1.1 Indicador C.1.1

Para poder crear una gráfica que nos muestre alguno de los indicadores, primero tenemos que crear los campos calculados que calculen dichos indicadores, ya que de momento únicamente tenemos las variables por su lado. De momento vamos a trabajar con el indicador C.1.1, que se calcula con la siguiente fórmula:

"Total number of tourists* average length of stay/total residents*365/100".

Vamos a usar una versión ligeramente distinta de esta fórmula para eliminar la referencia temporal (número de habitantes * 365 [días]) y crear el cálculo per capita (eliminando la división).

// C.1.1

SUM([Pernoctaciones]) / MIN([Habitantes])

Recordemos que para calcular el número de pernoctaciones de una zona geográfica para un año tenemos 12 meses x 2 tipos de alojamientos = 216 filas que sumar (12 en el caso de las cápitales, ya que según Eustat no hay alojamientos rurales en las capitales); sin embargo, no podemos sumar de la misma forma el número de habitantes, ya que obtendremos cifras incorrectas (por ejemplo, en el caso de Donostia serían, para 2018, el valor correcto es de 180.989 habitantes, no 2.171.868). El siguiente gif muestra los resultados de los distintos cálculos (sum() contra min()), y como saber qué datos está usando Tableau para realizar los cálculos, accediendo a Ver datos > Datos completos.

Resultados de los cálculos en Tableau (GIF, 1 MB) (abre en nueva ventana)

Cuando creamos este tipo de cálculos, conviene revisarlos antes de aplicarlos directamente en un gráfico. Para comprobar que todo está bien, creamos una tabla con los variables por un lado y el campo calculado por otro. En el ejemplo, observamos que el indicador C.1.1 tuvo un valor de 9,7 para la Rioja Alavesa en 2011.

Si realizamos el cálculo usando directamente los datos de Eustat ((pernoctaciones de hoteles + pernoctaciones de alojamiento rurales) / suma de los habitantes de los municipios de la Rioja Alavesa) observamos que el cálculo que ha realizado es correcto.

Cálculo realizado (GIF, 5 MB) (abre en nueva ventana)

Una vez que hemos comprobado que los cálculos son correctos, podemos empezar a usar el campo calulado en nuestro gráfico

  • Llevamos C.1.1 a Texto.
  • Configuramos el canal Texto de la siguiente forma
    • Mostramos los valores Min/Máx
    • Alcance: Celda

Con esta configuración, mostramos el valor mínimo y máximo para cada zona geográfica.

Tableau: valor mínimo y máximo para cada zona geográfica

4.2.1.2 Evolución del indicador

El siguiente campo calculado que vamos a crear comparará el valor de C.1.1 de un año con el del año pasado y devolverá una variable binaria que asignaremos al canal de Color.

// ¿Crece? -1 C11
IF
  ZN([C.1.1]) - LOOKUP(ZN([C.1.1]), -1) > 0
  THEN "Crece"
  ELSE "Decrece"
END

Para cada celda, la fórmula compara el valor con el anterior (lookup -1), y si es mayor que 0 el campo nos indicará que el indicador a crecido.

Asignamos ¿Crece? -1 C11 a Color y comprobamos que el cálculo de tabla se está realizando (Tabla) A lo largo.

Asignamos ¿Crece? -1 C11 a Color y comprobamos que el cálculo de tabla se está realizando (Tabla) A lo largo.

Finalmente, asignamos manualmente unos colores más adecuados para destacar más fácilmente las marcas, y modificamos el tamaño y el modo de visualización de la vista.

Destacar las marcas (GIF, 560 KB) (abre en nueva ventana)

4.2.1.3 Campo calculado para saber si un año tiene datos para todos los meses

Tal y como hemos configurado el gráfico hasta el momento puede llevarnos a realizar interpretaciones incorrectas, ya que no disponemos de todos los datos mensuales de 2019, por lo que no podemos comparar este año con 2018 en igualdad de condiciones.

Para evitar esta confusión, vamos a crear un campo calculado que nos indicará si un año determinado tiene datos para todos los meses o no.

/// MesesXAño
IF
    { FIXED year([Fecha]) : COUNTD(MONTH([Fecha])) } < 12
    THEN "Año incompleto"
    ELSE "Año completo"
END

Con la expresión LODE fijamos el cálculo a nivel de año, y para cada año se calcula si cuenta con datos para los 12 meses o no.

Cambiamos del tipo de marca del gráfico a Forma y asignamos MesesxAños a forma. Asignamos manualmente la forma de cuadrado relleno para los años completos, y la forma de cuadrado sin relleno a los años imcopletos (en el ejemplo, 2019).

Asignamos manualmente la forma de cuadrado relleno para los años completos, y la forma de cuadrado sin relleno a los años imcopletos

Dejamos el gráfico tal y como está, aunque al integrarlo en el cuadro de mando podremos terminar de realizar ajustes para que todos los elementos se vean correctamente.

4.3 Evolución mensual

El gráfico con la evolución mensual es muy similar al gráfico con la evolución interanual, por lo que duplicaremos esta vista para ahorrarnos trabajo.

Modificamos las columnas, para mostrar MES(Fecha) de forma continua (queremos obtener todos los meses disponibles en el conjunto de datos).

Modificamos las columnas, para mostrar MES(Fecha) de forma continua

A continuación, realizamos las siguientes modificaciones:

  • Eliminamos MesesXAños (cada uno de los meses está completo, por lo que en este gráfico no tiene sentido crear marcas distintas).
  • Duplicamos C.1.1 y lo llevamos a Tamaño.
  • Seleccionamos el tipo de marca Círculo.
  • Modificamos el tamaño constante para que sea algo mayor.
  • Modificamos la posición de la etiqueta, para que se muestre encima de los círculos y sea más legible.

Modificar la posición de la etiqueta (GIF, 751 KB) (abre en nueva ventana)

 Tal y como hemos configurado este gráfico podemos observar unos patrones estacionales que en el caso de unas zonas son mas marcadas que en otras. Por ejemplo, en el caso de Donostia / San Sebastián se repite este mismo patrón varios años: el indicador crece mensualmente de marzo a agosto, y decrece de septiembre a febrero.

En el caso de Donostia / San Sebastián se repite este mismo patrón varios años: el indicador crece mensualmente de marzo a agosto, y decrece de septiembre a febrero.

Sin embargo, en el ámbito del análisis de datos turísticos suele ser más habitual comparar cada mes con respecto al mismo mes del año anterior. Para poder obtener ese cálculo necesitamos realizar una modificación mínima al campo ¿Crece? - 1 C11. Pero si editamos directamente este campo calculado el nuevo cálculo afectará también a la gráfica anual, por lo que vamos a duplicar el campo calculado y editar la copia.

// ¿Crece? - 12 C11
IF
  ZN([C.1.1]) - LOOKUP(ZN([C.1.1]), -12) > 0
  THEN "Crece"
  ELSE "Decrece"
END

Como vemos, ahora cada marca no se va a comparar con la anterior, sino con la que está 12 posiciones a la izquierda (es decir, el mismo mes del año anterior). Reemplazamos el campo ¿Crece? - 1 C11 con el nuevo campo ¿Crece? - 12 C11 y volvemos a asignar los colores manualmente.

Reemplazar el campo y asignar el color en Tableau (GIF, 897 KB) (abre en nueva ventana)

El patrón que observamos ahora para Donostia / San Sebastián es distinto. Desde 2012, el indicador ha crecido en prácticamente todos los meses con respecto al mismo mes del año anterior (con algunas excepciones, principalmente en 2017 ).

4.4 Barras con datos del último año

Para poder comparar las zonas geográficas de una forma más simple, vamos a centrarnos en los datos del último año y vamos a mostrar el indicador a modo de gráfica de barras.

Configuramos el gráfico de esta forma:

  • Columnas: C.1.1
  • Filas: Zona geográfica Corregida
  • Color: Zona geográfica Corregida
  • Texto: C.1.1

Ordenamos las barras de mayor a menor.

Para obtener únicamente los datos del último año añadimos un filtro y lo configuramos para que muestre sólo datos del último año:

  • Llevamos Fecha a filtros
  • Seleccionamos la opción Fecha relativa
  • En la nueva ventana, seleccionamos Años y Éste año.

En la nueva ventana, seleccionamos Años y Éste año.

5. Montar el cuadro de mandos

Una vez que tenemos las vistas preparadas, podemos empezar a montar y configurar el cuadro de mando.

5.1 Maquetación

Seleccionamos el tamaño automático y traemos las vistas creadas al cuadro de mando en el orden en el que se muestra en la animación (podemos acceder directamente a una de las vistas por si tenemos que hacer algún tipo de modificación).

Seleccionar el tamaño automático y traer las vistas creadas al cuadro de mando en Tableau (GIF, 1 MB) (abre en nueva ventana)

Podemos modificar el tamaño de las vistas tirando de los extremos. Vamos a dejar algo más de espacio a los gráficos con información temporal.

Modificar el tampo de las vistas en Tableau (GIF, 537 KB) (abre en nueva ventana)

Para aprovechar el espacio en pantalla, vamos a eliminar todas las leyendas (más adelante añadiremos una pequeña explicación textual).

Eliminar todas las leyendas

5.1.1 Cuadro de texto

Además de gráficos propiapiamente dichos, podemos añadir otra serie de elementos al cuadro de mando. Uno de esos elementos es el objeto Texto, que nos permite introducir información textual (en nuestro caso, información sobre el procedimiento seguido para crear el cuadro de mando).

Añadir text al cuadro de mando en Tableau (GIF, 2 MB) (abre en nueva ventana)

5.2 Acciones

Como hemos indicado al principio del ejercicio, el mapa tiene que servir para filtrar las zonas geográficas en el resto de los gráficos. Para obtener esta funcionalidad, tenemos que crear una acción de filtro.

Dashboard > Acciones... y añadimos una nueva acción de filtro.

Dashboard > Acciones... y añadimos una nueva acción de filtro.

Las acciones de filtro constan de estos elementos:

  • Gráfico/s que va/n a ejecutar la acción cuando el usuario seleccione una o más marcas
  • Tipo de interacción que va a ejecutar la acción
  • Gráficos en los que se va a aplicar el filtro
  • Qué pasa cuando la selección desaparece
  • Campos que van a filtrarse (por defecto, todos los que coincidan entre la vista originadora y las vistas destino).

Configuramos nuestra acción de esta forma:

  • La acción se ejecutará cuando se seleccione al menos una zona en el mapa (pero no en el resto de las vistas)
  • La acción se ejecutará sobre el resto de los gráficos (pero no sobre el mapa mismo). Además, al deseleccionar la/s zona/s, se excluirán todos los valores.
  • Como estamos trabajando con un data blending, conviene identificar exactamente los campos que van a interactuar (aunque en este ejemplo no es estrictamente necesario).

Añadir acción de filtro.

Una vez que apliquemos el filtro, al seleccionar una o varias zonas en el mapa, el resto de los gráficos filtrarán dichas zonas; y al deshacer la selección, no se mostrará ninguna zona.

Seleccionar una o varias zonas en el mapa y deshacer la selección en Tableau (GIF, 783 KB) (abre en nueva ventana)

5.3 Parámetro para seleccionar el indicador

Hasta este momento hemos trabajado únicamente con el indicador C.1.1, pero podemos usar también el indicador C.1.3 (que aún no hemos creado).

Una vez hayamos calculado el nuevo indicador, tenemos que pensar cómo integrarlo en el cuadro de mando. Una opción consistiría en duplicar los gráficos y cambiar el indicador en cada uno de ellos, pero esta opción crearía un cuadro de mandos demasiado abigarrado.

La técnica que vamos a aplicar consiste en crear un parámetro para permitir al usuario elegir el indicador que quiere analizar, y usar el valor del parámetro para actualizar los gráficos de acuerdo al valor seleccionado.

En primer lugar, creamos el campo calculado C.1.3 duplicando C.1.1. y cambiando las pernoctaciones por las plazas ofertadas.

A continuación, creamos el parámetro con la siguiente configuración:

  • Tipo de dato: Cadena
  • Valores permitidos:Lista

Creamos una opción para cada indicador.

Creamos una opción para cada indicador.

Para que el parámetro funcione, tenemos que crear un nuevo campo calculado que devuelva los datos de uno u otro indicador dependiendo del valor del parámetro.

// Indicador seleccionado

CASE [Selecciona el indicador que quieres analizar]
    WHEN "C11" THEN [C.1.1]
    WHEN "C13" THEN [C.1.3]
END

Tenemos que reemplazar la píldora C.1.1 por Indicador seleccionado en todos los gráficos en los que se esté utilizando.

Finalmente, añadimos el control de parámetro al cuadro de mando, desde la opción de menú Analizar > Parámetros. y lo situamos en la zona superior del cuadro de mando.

Añadir el control de parámetro al cuadro de mando en Tableau (GIF, 2 MB) (abre en nueva ventana)

Ejercicios

  • Crear uno o más gráficos que puedan permitir al usuario observar si hay o no hay desestacionalización con respecto al indicador C.1.1, e integrarlos en el cuadro de mando.

  • Permitir al usuario la posibilidad de seleccionar cómo tienen que compararse los meses (con respecto al anterior, o con respecto al mismo mes del año anterior).

  • Elaborar una infografía (en Tableau) sobre la evolución del indicador C.1.1 en una o más zonas geográficas de interés.

Posibles mejoras

Cómo hemos indicado al inicio de este documento, el objetivo de este ejercicio era crear un cuadro de mando que nos ofreciera una vista general de la evolución de dos indicadores de presión turística. Sin embargo, esta no es más que una posible solución, que podemos modificar añadiendo otros criterios y/o necesidades de información:

  • ¿Cómo podríamos comparar los dos indicadores de forma simultánea?
  • ¿Pueden otros gráficos mostrar la misma información de forma más directa?
  • ¿Cómo podemos ofrecer a los/as usuarios/as la posibilidad de seleccionar el criterio utilizado para asignar color en el gráfico mensual?
  • A partir de esta información genérica, ¿cómo podemos ofrecer un mayor nivel de detalle?