Gráfico de líneas con agregación

Un caso especial de gráficos de líneas lo encontramos cuando para cada valor de x puede existir más de un valor y. En estos casos, el comportamiento por defecto de seaborn es mostrar el valor medio de los valores y el intervalo de confianza del 95%. Un ejemplo de este tipo lo encontramos en el dataset de ejemplo flights, con información del número de pasajeros transportados por mes y por año:

flights = sns.load_dataset("flights")
flights.sample(5)

El dataset fmri

Mostremos la gráfica de líneas de pasajeros transportados por año:

sns.relplot(x = "year", y = "passengers", kind = "line", data = flights);

Gráfico de líneas con agregación

La línea principal mostrada de color azul oscuro es el valor medio de los pasajeros transportados el año correspondiente, y el área azul claro por encima y por debajo supone el intervalo de confianza del 95%. Este intervalo es calculado usando bootstrapping.

El parámetro ci (confidence interval) controla el comportamiento de esta opción. Puede tomar como valores un número, el texto "sd", False o None. En el primer caso indicará el intervalo de confianza a aplicar (habrá que indicar un número entero entre 0 y 100. El valor por defecto, como hemos visto, es 95). En el siguiente ejemplo se muestra la misma gráfica con un intervalo de confianza del 40%:

sns.relplot(x = "year", y = "passengers", kind = "line", data = flights, ci = 40);

Gráfico de líneas con agregación

Si toma el valor "sd" se mostrará la desviación estándar de los datos:

sns.relplot(x = "year", y = "passengers", kind = "line", data = flights, ci = "sd");

Gráfico de líneas con agregación

Por último, pasando al parámetro el valor None o False se desactiva el cálculo del intervalo de confianza:

sns.relplot(x = "year", y = "passengers", kind = "line", data = flights, ci = False);

Gráfico de líneas con agregación

De hecho, todos los ejemplos anteriores han mostrado un intervalo de confianza en torno al valor medio de los datos, pero es posible agregarlos según otros métodos de pandas utilizando el parámetro estimator. Por ejemplo, según la mediana:

sns.relplot(x = "year", y = "passengers", kind = "line", data = flights, estimator = "median", ci = "sd");

Gráfico de líneas con agregación

...según el valor máximo:

sns.relplot(x = "year", y = "passengers", kind = "line", data = flights, estimator = "max", ci = "sd");

Gráfico de líneas con agregación

...etc.

Usando la función a nivel de ejes equivalente, sns.lineplot, podemos mostrar la gráfica anterior con tres estimadores (correspondientes al valor medio, máximo y mínimo) y ver cómo se representa cada uno:

sns.lineplot(x = "year", y = "passengers", data = flights, estimator = "mean", label = "mean");
sns.lineplot(x = "year", y = "passengers", data = flights, estimator = "max", label = "max");
sns.lineplot(x = "year", y = "passengers", data = flights, estimator = "min", label = "min");

Gráfico de líneas con agregación