Mapa de calor de correlación en Seaborn

Manav Narula 20 noviembre 2021
Mapa de calor de correlación en Seaborn

La correlación es un factor fundamental fundamental para los científicos de datos. Indica cómo las variables de un conjunto de datos se relacionan entre sí y cómo se mueven entre sí. El valor de correlación varía de -1 a +1. 0 La correlación indica que dos variables son independientes entre sí. Una correlación positiva indica que las variables se mueven en la misma dirección y una correlación negativa indica lo contrario.

Podemos trazar el array de correlación utilizando el módulo seaborn. Ayuda a comprender el conjunto de datos fácilmente y se utiliza con mucha frecuencia para el trabajo de análisis.

Este tutorial presentará cómo trazar el array de correlación en Python usando la función seaborn.heatmap().

El mapa de calor se utiliza para representar gráficamente los valores del array con diferentes tonos de color para diferentes valores. Visualiza el array general con mucha claridad.

En el siguiente código, representaremos un array de correlación usando un mapa de calor en Python.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

sns.heatmap(df.corr())

mapa de calor de correlación en seaborn

El código anterior crea una gráfica de mapa de calor de correlación básica. La función corr() se utiliza para devolver el array de correlación del DataFrame. También podemos calcular otros tipos de correlaciones usando esta función. Observe que el tono de color para cada valor en la barra del eje de color.

También podemos personalizar la figura final utilizando diferentes parámetros. Consulte el siguiente código.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

sns.heatmap(df.corr(), vmin=-1, vmax=+1, annot=True, cmap="coolwarm")

mapa de calor de correlación en seaborn con diferentes parámetros

Observe el uso de tantos parámetros. Los argumentos vmin y vmax se utilizan para especificar la escala del eje de color. el argumento cmap aquí altera el esquema de color utilizado para la trama. El parámetro annot se utiliza para mostrar los valores de correlación en los cuadrados. Además, podemos utilizar los parámetros linewidth y linecolor para oscurecer los bordes de los cuadrados y especificar el color del borde. Podemos personalizar la barra de colores usando el argumento cbar_kws.

Tenga en cuenta que si elimina la mitad de los datos en un lado de la diagonal principal, no perderá ninguna información importante ya que se repite. Debido a esto, también podemos crear un diagrama triangular.

El siguiente fragmento de código logra esto.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

upp_mat = np.triu(df.corr())

sns.heatmap(df.corr(), vmin=-1, vmax=+1, annot=True, cmap="coolwarm", mask=upp_mat)

mapa de calor de correlación triangular en seaborn

En el código anterior, primero usamos el numpy.triu(), que devuelve el triángulo superior del array, y luego lo enmascaramos usando el argumento mask de la función heatmap(). De manera similar, podemos enmascarar el triángulo inferior usando la función numpy.tril().

Otra representación interesante que podemos obtener es que podemos mapear solo una variable y encontrar su correlación con diferentes variables.

Por ejemplo,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

df = pd.DataFrame(
    {
        "Day 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Day 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day 3": [4, 6, 5, 8, 6, 1, 2, 3],
        "Day 4": [5, 8, 9, 5, 1, 7, 8, 9],
    }
)

upp_mat = np.triu(df.corr())

sns.heatmap(df.corr()[["Day 1"]], vmin=-1, vmax=+1, annot=True, cmap="coolwarm")

mapa de calor de correlación en seaborn con diferentes variables

En el ejemplo anterior, graficamos la correlación de la variable Day 1 con otras variables.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Seaborn Heatmap