Etiqueta: gráficos

Gráficos de línea con inicio en base cero

Al analizar series temporales nos podemos encontrar con ciertas dificultades si el rango temporal es muy diferente y queremos hacer comparaciones entre dos elementos. Un caso muy habitual de este tipo es analizar la evolución de un fenómeno desde su inicio (o desde el inicio desde que disponemos datos). Este es el problema que me encontré para realizar la siguiente visualización: comparar la evolución del número de víctimas mortales de ETA a lo largo de su historia y la evolución de victimas mortales por violencia de género desde que se disponen de datos (haz click en la imagen para abrir la visualización).

Problema inicial

La Fundación Víctimas del Terrorismo ofrece en su página web un listado completo de las personas que han muerto a manos de bandas terroristas en España. En el caso de la banda ETA, ofrece un listado completo de personas muertas a manos de ETA: la primera en junio de 1968 y la última en marzo de 2010. En total 823 personas.

Por otro lado, la Delegación del Gobierno para la Violencia de Género ofrece también en su página web datos de personas muertas a manos de su pareja o ex pareja desde enero de 2003 a diciembre de 2016.

La serie temporal de ambas series de datos es muy distinta. Contamos con más de 40 años de datos en el caso de ETA y con tan sólo 14 años en el caso de la violencia de género ¿Cómo podemos hacernos una idea de cómo han evolucionado ambos fenómenos?

Primeros pasos

Lo primero es unir ambos ficheros de datos en un archivo excel con el mes y el año en el que ocurre un asesinato, el número de víctimas y el tipo de víctima (de ETA o de la violencia de género). A continuación, si arrastramos el mes de nuestro campo de fecha a columnas como un campo continuo, la suma de víctimas a filas y el tipo de víctima a color, obtendríamos algo así:

Nada demasiado útil. Aunque si se observa un mayor número de víctimas mortales de ETA a finales de los 70 y principios de los 80 y junio de 1987 como el mes con más víctimas de toda la serie histórica. Podríamos también utilizar el total acumulado (running total) en lugar de la suma haciendo click derecho en la suma de víctimas y utilizando los cálculos rápidos de tabla (quick table calculations).

El acumulado nos da información más interesante. Se confirma lo que intuíamos antes: un reducido numero de víctimas por parte de ETA hasta mediados de los 70, aumentando luego con más intensidad y una reducción a partir sobre todo del año 2000. También vemos que en total, el número de víctimas por violencia de género es mayor al final del periodo para el que disponemos datos. Aún así, resulta complicado responder a algunas preguntas que podrían ser interesantes. Por ejemplo: ¿cómo han evolucionado el número de víctimas desde el primer mes del que disponemos datos en cada serie?

La función INDEX

INDEX es una de las funciones disponibles en Tableau que creará un índice en base a la partición o la variable que seleccionemos. De este modo, podremos tener un índice de los meses que comience de nuevo para cada uno de los tipos de víctima.

En primer lugar arrastramos los meses desde columnas a la sección de detalle.

A continuación, hacemos doble click en columnas y escribiremos INDEX() para utilizar la función index en columnas.

Vemos que en el índice todo tiene valor 1, ya que tenemos que especificar como queremos que se calcule nuestro índice. Para ello basta con hacer click derecho en el índice y seleccionar «Compute Using» y seleccionar nuestra variable de fecha.

Ahora nuestro índice setá funcionando como queremos. Tenemos datos de víctimas de ETA desde mediados de 1968 hasta mediados de 2010. Algo más de 40 años, que multiplicado por 12 meses al año son unos 500 meses. Mientras que en el caso de las víctimas por violencia de género tenemos 14 años de datos, 168 meses de datos. Vemos que por tanto ahora tenemos valores comenzando en el valor índice 1 (el primer mes para el que contamos datos para cada tipo de víctima) hasta el último valor del índice de cada tipo de víctima: 502 en el caso de ETA y 168 en el caso de la violencia de género.

No obstante nuestro total acumulado no está funcionando. Tenemos que, tal como hemos hecho con el índice, indicar cómo queremos que se calcule el total acumulado. Que al igual que el índice queremos que se calcule en base a nuestra fecha.

Últimos ajustes

Ahora ya tenemos nuestra visualización.

Tan solo tenemos que cambiar el tipo de marca de automático a líneas, y listo. Podemos hacer nuestra comparación con el mismo punto de inicio para ambas series temporales.

Ahora podemos ver más fácilmente que en 100 meses hubo casi 600 víctimas de la violencia de género. Mientras que en sus primeros 100 meses hubo menos de 100 víctimas de ETA. Y que en los 14 años de datos de violencia de género, el número de víctimas ha sido mayor que en los 40 años de historia de ETA. Así como que el periodo entre los meses 125 y 150 desde el primer asesinato de ETA, la pendiente deel número de muertos es similar a la pendiente de víctimas de violencia de género en los últimos 14 años.

 

Cómo crear gráficos de donut en Tableau

Donut Tableau

¿Cuándo utilizarlos?

Mucha gente afirma que los gráficos de donut y el de sectores (el gráfico de quesitos de toda la vida) no son las mejores opciones a la hora de visualizar datos. En general estoy de acuerdo, pero en mi opinión son gráficos que también tienn su sitio y su utilidad en ciertas circunstancias. Especialmente cuando queremos mostrar datos para muy pocas categorías (no más de tres y como muchísimo cuatro, aunque incluso con cuatro lo mismo me estoy pesando).

Crear gráficos de sectores es muy sencillo en Tableau, pero ¿cómo podemos crear un gráfico de donut?

Paso 1: Crear el gráfico de sectores

Lo primero vamos a crear un gráfico de sectores normal. El paso inicial sería preguntarnos que es lo que queremos visualizar en el gráfico de sectores. Por ejemplo, las ventas totales por cada segmento de ventas. Para ello lo primero que tenemos que hacer es seleccionar «Pie» (tarta en inglés) en el tipo de marca para tener así la opción adicional de «Angle» característica del gráfico de sectores. En segundo lugar arrastamos a la tarjeta de «Angle» la medida que queramos visualizar en el gráfico, las ventas en nuestro caso. En este punto veremos tan sólo un punto grande azul que representa todas nuestras ventas. Lo que tenemos que hacer en tercer lugar es arrastrar a Color la dimensión que queramos que separe nuestras ventas. En nuestro ejemplo, el segmento.

Paso 2: Crear dos ejes y sincronizarlos

Básicamente, el truco para crear un gráfico de donut es crear dos ejes sincronizados, en uno de ellos crear nuestro gráfico de sectores y en el otro eje crear un círculo sin ningún dato ni información de tamaño más reducido. Así que una vez tenemos nuestro gráfico de sectores tenemos que crear ambos ejes, pero no queremos utilizar ninguna de las medidas de nuestra base de datos. Si quieres saber por qué, haz una prueba y verás lo que le pasa al gráfico de sectores. Lo que haremos será por tanto crear un eje «ficticio». Tan sólo tenemos que hacer doble click en el estante de filas o de columnas y escribir un 0. Por defecto Tableau creará un eje con la expresión SUM(0),

Ya tenemos nuestro gráfico de sectores en un eje que siempre será 0 (la suma de cero es cero). Ahora vamos a duplicar dicho eje pulsando la tecla CTRL y mientras tenemos dicha tecla pulsada, arrastramos y soltamos nuestra píldora SUM(0) justo al lado de donde la hayamos situado (en filas o en columnas).

Ahora nos queda utilizar un gráfico de doble eje y sincronizar estos ¿Cómo? Haciendo click derecho en la segunda píldora de SUM(0) y seleccionando «Dual Axis». A continuación hacemos click derecho en cualquiera de los dos ejes y seleccionamos «Synchronize Axis» (sincronizar ejes). Aunque en este caso particular no sería necesario sincronizar los ejes ya que estamos utilizando como eje la suma de 0 que siempre es 0, es una buena forma de acosumbrarse a sincronizar siempre los ejes cuando utilizamos un eje secundario con la misma medida. Ahora tendremos nuestros dos gráficos de sectores uno superpuesto al otro.

Paso 3: Eliminar toda la información del gráfico secundario

Vemos ahora además que en la tarjeta de marcas contamos con más opciones. Una opción «All» que afectará a los dos ejes, una pestaña para hacer cambios al eje SUM(0) y otra para hacer cambios en el otro eje SUM(0) (2). Seleccionamos el eje secundario haciendo click en la píldora SUM(0) de la derecha o en la tarjeta de marcas haciendo click en la pestaña SUM (0) (2). En dicha pestaña Eliminamos la medida y la dimensión que estamos utilizando y cambiamos el color a blanco. Ahora deberíamos ver tan sólo un punto blanco en nuestra visualización, pero no hay que alarmarse, basta con hacer más pequeño el tamaño de del gráfico de dicho eje a través de la opción Size de la tarjeta de marcas y/o más grande el tamaño del gráfico del otro eje para tener nuestro gráfico de donut.

Como decíamos antes, lo que estamos haciendo es crear dos gráficos de sectores, pero uno de ellos sin ningún tipo de información que actúa como el agujero del gráfico de donut.

Paso 4: Terminar de dar formáto el gráfico de donut

Siempre viene bien limpiar nuestros gráficos y dejarlo a nuestro gusto. Podemos en este caso ocultar los ejes y asegurarnos de no mostrar ninguna de las líneas de referencia en las opciones de formato. Borrar todo el contenido de la ventana emergente (tooltip) del eje que no contiene información. Limpiar la del eje principal. Eliminar los bordes. Añadir la dimensión y la medida del eje principal a etiquetas (Label) y editarlas. Así hasta que tengamos el gráfico de donut totalmente a nuestro gusto y listo para utilizar en cualquier dashboard.

Cómo crear una pirámide de población en Tableau

Una pirámide de población es un histograma horizontal que representa la distribución de la población de una región por sexo y edad. Mostrando la población más joven en la parte inferior, y la más anciana en la parte superior y cada género en un sentido (hombres hacia la derecha y mujeres hacia la izquierda o viceversa). Para además hacer el gráfico comparable entre distintos países, normalmente no se representa en cantidades absolutas (número de habitantes) sino en porcentaje respecto al total de población de la región.

Se trata por tanto de un gráfico muy útil para analizar la estructura de la población de una región determinada. Así, una población en fase de rápido crecimiento tendrá una base muy amplia (elevado porcentaje de jóvenes) y una parte alta de la pirámide estrecha (reducido porcentaje de personas ancianas), mientras que una población envejecida o en fase de envejecimiento tendrá una mayor amplitud en la parte media y alta de la pirámide (mayor porcentaje de población en edades medias y avanzadas que jóvenes).

¿Cómo construir una pirámide de población en Tableau?


Lo primero, como no podría ser de otra forma, es conseguir los datos. Para este ejemplo he utilizado datos de Eurostat. La ventaja de Eurostat es que permite generar una tabla con la estructura que nosotros queramos y luego descargar el fichero. Para evitar tener que modificar la estructura de los datos posteriormente, descargué el fichero con la siguiente estrucutura: La edad en la columna A, el país en la columna B, el número de mujeres en la columna C y el número de hombres en la columna D. Así tendremos un fichero con un reducido número de columnas y un amplio número de filas, formato mucho más cómodo de trabajar en Tableau ¿Por qué? Porque cuando arrastremos la dimensión «Edad» a filas, por ejemplo, nos mostrará todas las edades en filas. Mientras que si tuvieramos la edad en columnas, tendríamos que arrastrar 100 medidas diferentes, ya que cada edad sería una variable. Esto podríamos también solucionarlo «pivotando» los datos directamente en Tableau. Pero ya que Eurostat nos permite definir como queremos descargar el fichero, resulta más cómodo ahorrarnos ese paso.

Ahora tan solo tendremos que conectar Tableau a el fichero Excel y comenzar a crear nuestra pirámide de población.

1) Incluir todas las edades en la visualización en el eje vertical. Para ello arrastramos la edad (Age) a filas y ordenamos manualmente de forma que las edades más bajas (más jóvenes) estén abajo del todo y los mayores arriba del todo.

2) Aarrastrar las medidas de mujeres y hombres a columnas y nos aseguramos de que la agregación sea una suma. Tendremos ahora una visualización similar a esta:

3) Para conseguir la forma de pirámide, las barras de la izquierda tendrían que ir en sentido contrario. En nuestro caso es la población de mujeres. Hacemos doble click en el eje de mujeres y marcamos la opción de Reversed Scale.

Esto ya se va pareciendo un poco más a una pirámide de población.

4) A continuación, ocultaremos las etiquetas de edad y ajustaremos la vista para poder ver toda la pirámide sin necesidad de hacer scroll hacia abajo. Para ello hacemos click derecho en la píldora de edad que tenemos en filas y desmarcamos Show Header. Y en el menú superior cambiamos la vista de Standard a Entire View.

 

 

5) ¡Vamos bien! No obstante, podemos ver que actualmente estamos visualizando el total de la población de nuestra base de datos por sexo y edad. En nuestro caso, la suma de la población de todos los países que tenemos en nuestra base de datos. Lo que queremos ver no es la población absoluta, sino la relativa, es decir, los porcentajes. Así que vamos a crear unos cálculos para mostrar los porcentajes en lugar de los datos absolutos. Esto lo podríamos hacer muy fácilmente con una quick table calculation y calcular el porcentaje sobre el total tanto de hombres como de mujeres. Sin embargo, si lo hacemos de este modo estaremos calculando el porcentaje sobre el total de hombres y el porcentaje sobre el total de mujeres. Es decir la suma de los porcentajes de todas las edades entre hombres dará 100% y la de mujeres otro 100% y lo que queremos es que la suma de hombres mas la suma de mujeres sea 100%. Así que primero vamos a crear un campo calculado que nos de la suma de hombres y mujeres para calcular el total.

Y a continuación un campo calculado para obtener el porcentaje de mujeres y otro para el de hombres.

¿Por qué dividimos la suma de mujeres entre el TOTAL de la suma de nuestro campo total? Básicamente porque lo queremos es el porcentaje que representan las mujeres en cada edad sobre el total de la población. Si hiciesemos SUM([Females]) / SUM([Total]) lo que calcularíamos es el porcentaje de mujeres sobre el total para cada edad, no para el total. La función total lo que hace es darnos la suma total de dicho campo de todos los valores en nuestra visualización. A continuación, crearemos un campo calculado similar pero esta vez para hombres en lugar de para mujeres y sustituimos estos nuevos campos por los que tenemos actualmente en el estante de columnas de nuestra visualización. Al cambiar de medida, tendremos además que volver a invertir la escala del eje de la izquierda.

6) Para asegurarnos además de que el TOTAL está calculándose correctamente, haremos click derecho en cada uno de estos campos en el estante de columnas y nos aseguramos de que se calculen en función de la edad, o hacia abajo de la tabla (en nuestro caso ambas opciones darán el mismo resultado, ya que en filas tenemos la dimensión de edades).  En el menú de Compute using al hacer click derecho en cada una de estas medidas tendremos que indicar Table (Down) o Age. De este modo, tendremos por ejemplo el porcentaje que representan las mujeres de 50 años sobre el total de la población (Hombres + Mujeres).

7) ¡Perfecto! Ya tenemos el porcentaje de cada edad y cada sexo sobre el total. Ahora sólo tendremos que hacer pequeñas modificaciones para que la visualización quede algo mejor. Lo primero es cambiar el tipo de marcas de barras a areas (tanto para hombres como para mujeres).  Luego ocultaremos ambos ejes. Podemos además cambiar el color de los hombres y el de las mujeres a nuestro gusto y darle algo más de formato al gráfico para eliminar las líneas de división. Y ya tenemos lista nuestra pirámide de población.

Por último, recuerda que ahora mismo estamos viendo la pirámide de población de todos los países de nuestra base de datos. Podemos utilizar el país como filtro para visualizar el país que queramos. O incluso podemos crear small multiples para visualizar todos los países a la vez. Puedes consultar mi post de la semana pasada sobre cómo crear small multiples en Tableau.

Gráficos de doble eje en Tableau

Si hace poco que has empezado a usar Tableau o sólo lo has probado de forma puntual con la versión de prueba, tal vez te has preguntado como hacer gráficos de doble eje y no has conseguido averiguar cómo hacerlo.
En Tableau, si por ejemplo queremos analizar las ventas y el beneficio por subcategoría de producto utilizando la base de datos EU Superstore, y arrastramos la subcategoría en las columnas, y las dos medidas en las filas, obtendremos lo siguiente:

Pero esto se aleja mucho de lo que queremos: mostrar ambos valores en un mismo gráfico. Como prácticamente cualquier cosa que queramos hacer en Tableau, existen varias formas de hacer un gráfico de doble eje.

Método 1: Click derecho en una de las medidas
Partiendo del gráfico anterior, hacemos click derecho en la suma de las ventas en el panel de filas, y seleccionamos Dual Axis.
De este modo el beneficio y las ventas estarán en el mismo gráfico, cada uno con los valores de referencia en uno de los ejes. Tableau además cambiará el tipo de marca automáticamente y obtendremos un gráfico como este.
Si nos fijamos, ahora veremos que en nuestra tarjeta de marcas tenemos más opciones de las habituales, pudiendo modificar las características de la medida Beneficio y Ventas de forma individual o ambas en su conjunto en la pestaña All.
De este modo podemos seleccionar que el beneficio se muestre en barras y las ventas en línea:
Ya tendríamos nuestro gráfico de dos ejes, pudiendo además sincronizarlos en caso de que queramos que la escala sea idéntica para los dos, para ello basta con hacer click derecho en el eje secundario )el de la derecha) y hacer click en Synchronize Axis,
Método 2: Arrastras y soltar en el eje secundario
 
Para ello:
1. Partimos de un gráfico de barras de un solo eje, en nuestro ejemplo con la subcategoría de producto en columnas y el beneficio en filas.
2. A continuación, arrastramos nuestra segunda medida (en el ejemplo, las ventas) hasta el eje secundario. Veremos que al situar el cursos sobre dicho eje, Tableau lo resalta con una línea discontinua de puntos y junto al cursor se muestra una columna verde. Soltamos nuestra segunda medida y tendremos ya nuestro gráfico de dos ejes. Ahora simplemente tendremos que cambiar la marca del beneficio a barras y la de las ventas a líneas como en el caso anterior.
Eso sí, recuerda que en este caso particular, los gráficos de líneas no son los más adecuados para mostrar una categoría. Ya que como posible alternativa, tal vez sería más conveniente usar nuestra segunda medida, la suma de ventas, en la tarjeta de color con el objetivo de simplificar el gráfico pero no perder el contexto que aporta esta segunda medida:

 

Como crear diagramas de dispersión conectados y animados

Los diagramas de dispersión son uno de los tipos de gráfico que personalmente más me gustan y en mi opinión uno de los que más valor añadido pueden aportar. Con ellos podemos analizar de una forma muy rápida y sencilla la relación existente entre dos medidas incluso para un elevado número de puntos. Resultan además sencilllos de leer, son claros y nos permiten además utilizar el color o el tamaño de los puntos como elementos adicionales para dotar de contexto a los datos.
Hoy vamos a ver como podemos construir diagramas de dispersión con puntos conectados e incluso animados con Tableau. Para este ejemplo he utilizado unas de las bases de datos que ofrece Tableau en su página web: World Indicators.

1. Lo primero de todo, construimos el diagrama de dispersión, simplemento haciendo doble click en una medida y luego en otra tendremos ya nuestro diagrama que nos mostrará un único punto.

2. Un único punto no nos sirve de mucho en un diagrama de dispersión, asi que vamos a mostrar cada país con un punto y además vamos a colorearlos por regiones. Para ello arrastramos la dimensión Country a Detail (Detalle) en la tarjeta de marcas, y la dimensión Region a Color también en la tarjeta de marcas. Si lo consideramos necesario, podemos hacer doble click en cada uno de los ejes para desactivar la casilla de «Incluir cero» y focalizar aun más el diagrama de dispersión en los datos.
3. Ahora tenemos nuestro diagrama de dispersión normal y corriente, así vamos a pasar a conectar los puntos, para ello en la tarjeta de Marcas cambiamos el tipo de marca de Automático a Línea, conectándose los puntos de cada región entre si.
4. No obstante esto, en principio, no nos ayuda mucho ¿de qué nos sirven los países conectados por una línea? Para solucionarlo pulsamos con el botón derecho nuestra dimensión que contenga la fecha y la arrastramos en Path (Ruta) en la tarjeta de Marcas y seleccionamos años como medida.
Esto ya es otra cosa. Ahora tenemos cada uno de nuestros países representado con una línea, las cuales están coloreadas por región y además la línea nos muestra la evolución de cada país a lo largo de los años.
5. Pero esto puede llevar también a confusión en algunos casos, ya que algunos años los valores pueden ir incrementándose pero otros disminuyendo, por lo que vamos a animar el gráfico para que sea más dinámico y podamos ver la evolución de cada país de forma más clara. Así que volvemos a cambiar el tipo de marca de Línea a Círculo y arrastramos el Año desde la tarjeta de Marcas a la tarjeta de Páginas (Pages). Ya sólo nos queda seleccionar Mostrar Historia (Show History) y hacer click para seleccionar algunas opciones adicionales: mostrar la estela (trail) y tal vez cambiar el formato ligeramente para darle algo más de transparencia… et voilà!
Ahora podemos ir seleccionando cada año y ver como va evolucionando las dos medidas de cada uno de los países.