DEV Community

Cover image for Recetas para visualización de datos con Seaborn
Leandro Ruiz
Leandro Ruiz

Posted on • Updated on

Recetas para visualización de datos con Seaborn

En este articulo voy a recopilar algunos bloques de código que me han sido de gran utilidad en varios proyectos de machine learning. Seaborn es una librería para visualización en Python que contiene una gran variedad de gráficos con mucha personalización.

Gráficos básicos

Gráfico de correlación:

import seaborn as sns
sns.regplot(x='1st_feature', y='2nd_feature', data=df)
Enter fullscreen mode Exit fullscreen mode

Gráfico de datos residuales:

sns.residplot(df['features'], df['target'])
Enter fullscreen mode Exit fullscreen mode

Boxplot (o subplot), para ver outliers:

sns.boxplot(x='1st_feature', y='2nd_feature', data=df)
Enter fullscreen mode Exit fullscreen mode

Gráfico de densidad:

plt.figure(figsize = (14,6))
plt.title('Plot Title')
sns.set_color_codes("pastel")
sns.distplot(df['1st_feature'], kde=True, bins=200, color="blue")
plt.show()
Enter fullscreen mode Exit fullscreen mode

Gráfico de densidad con dos clases de objetivos:

class_0 = df.loc[df['target_feature'] == 0]["1st_feature"]
class_1 = df.loc[df['target_feature'] == 1]["2nd_feature"]
plt.figure(figsize = (14,6))
plt.title('Plot Title')
sns.set_color_codes("pastel")
sns.distplot(class_0, kde=True, bins=200, color="green", label='1st feature')
sns.distplot(class_1, kde=True, bins=200, color="red", label='2nd feature')
plt.legend()
plt.show()
Enter fullscreen mode Exit fullscreen mode

Gráfico de cajas con varios atributos:

# 1st_feature= x, 2nd_feature = y, 3rd_feature = labels
def boxplot_variation(1st_feature, 2nd_feature, 3rd_feature, width=16):
    fig, ax1 = plt.subplots(ncols=1, figsize=(width,6))
    s = sns.boxplot(ax = ax1, x=1st_feature, y=2nd_feature, hue=3rd_feature,
                data=df, palette="PRGn",showfliers=False)
    s.set_xticklabels(s.get_xticklabels(),rotation=90)
    plt.show();
Enter fullscreen mode Exit fullscreen mode

Graficando atributos importantes:

tmp = pd.DataFrame({'Feature': x_train, 'Feature importance': clf.feature_importances_})
tmp = tmp.sort_values(by='Feature importance', ascending=False)
plt.figure(figsize = (7,4))
plt.title('Features importance', fontsize=14)
s = sns.barplot(x=x_train, y='Feature importance', data=tmp)
s.set_xticklabels(s.get_xticklabels(), rotation=90)
plt.show()   
Enter fullscreen mode Exit fullscreen mode

Mapa de calor de la matriz de correlación en forma de triángulo:

# corr_matrix son las correlaciones a graficar usando .corr()
mask = np.triu(np.ones_like(corr_matrix, dtype=np.bool))
f, ax = plt.subplots(figsize=(11, 9))
cmap = sns.diverging_palette(220, 10, as_cmap=True)
sns.heatmap(corr_matrix, mask=mask, cmap=cmap, vmax=.3, center=0,
            square=True, linewidths=.5, cbar_kws={"shrink": .5})
Enter fullscreen mode Exit fullscreen mode

Pairplots

Pairplot básico:

sns.pairplot(df)
Enter fullscreen mode Exit fullscreen mode

Seleccionando atributos:

sns.pairplot(df, vars=["1st_feature", "2nd_feature"])
Enter fullscreen mode Exit fullscreen mode

Diferentes atributos en filas y columnas:

sns.pairplot(df,
                 x_vars=["1st_feature", "2nd_feature"],
                 y_vars=["3rd_feature", "4th_feature"])
Enter fullscreen mode Exit fullscreen mode

Graficando solo el triángulo inferior y ajustando un modelo lineal:

sns.pairplot(df, kind='reg', corner=True)
Enter fullscreen mode Exit fullscreen mode

Conclusión

Esto es todo por ahora, quizas en el futuro haga una segunda parte con mas tipos de gráficos.

¡Muchas gracias por llegar hasta aqui!

Top comments (0)