Saltar al contenido
Gráficos con Matplotlib

Creación de gráficos de superficie y calor mediante la librería Seaborn

Introducción

La visualización de datos es una herramienta valiosa en la exploración y comunicación de información relevante. La librería Seaborn se ha convertido en una opción popular para la visualización de datos en Python debido a su facilidad de uso y a la gran cantidad de estilos disponibles.

Una de las opciones populares de Seaborn es la creación de gráficos de superficie y calor, los cuales ayudan a visualizar tendencias y patrones de datos en 2D y 3D. Los gráficos de superficie representan una función en 3D, donde el eje x y y son las variables independientes y el eje z es la variable dependiente. Por otro lado, los gráficos de calor suelen utilizarse para representar la intensidad o valor de una variable para diferentes categorías o rangos de valores.

Seaborn ofrece una variedad de herramientas para personalizar estos gráficos, como la elección de paletas de colores, la manipulación de ejes y la adición de anotaciones. Es importante destacar que, aunque Seaborn no cuenta con todas las posibilidades de personalización que se pueden obtener con herramientas más avanzadas, sirve como una opción fácil y rápida para crear gráficos impresionantes y fáciles de interpretar para la exploración de datos.

Resumen

Gráficos de superficie con Seaborn

Los gráficos de superficie se utilizan para representar funciones o datos que se extienden en dos dimensiones (x, y) en un plano y tienen una tercera dimensión (z) que corresponde a la altura. En Seaborn, podemos crear gráficos de superficie utilizando la función sns.surfaceplot(). Veamos un ejemplo:


import seaborn as sns
import numpy as np

# Creamos los datos
x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

# Creamos el gráfico de superficie
sns.surfaceplot(X=X, Y=Y, Z=Z, cmap='viridis')

    

En este ejemplo, creamos una matriz de valores Z a partir de la función seno de los valores de R, que es una matriz que representa la distancia a (0,0) en el plano xy. Luego, utilizamos sns.surfaceplot() para visualizar los datos en un gráfico de superficie.

Gráficos de calor con Seaborn

Los gráficos de calor son útiles para representar datos en una matriz de dos dimensiones, donde los valores de cada celda están representados por colores. En Seaborn, podemos crear gráficos de calor utilizando la función sns.heatmap(). Veamos un ejemplo:


import seaborn as sns
import numpy as np

# Creamos la matriz de datos
data = np.random.rand(10, 10)

# Creamos el gráfico de calor
sns.heatmap(data, cmap='rocket_r', annot=True)

    

En este ejemplo, creamos una matriz de datos aleatorios y utilizamos sns.heatmap() para crear un gráfico de calor. Configuramos el esquema de colores con "rocket_r" y activamos la opción annot=True para mostrar los valores de cada celda en el gráfico.

En resumen, Seaborn es una herramienta muy útil para crear visualizaciones avanzadas como gráficos de superficie y gráficos de calor, permitiendo una alta personalización y eficiencia en la representación de datos en tres dimensiones.

Aplicación teórica

Gráfico de calor con Seaborn

Supongamos que tenemos una matriz de datos que representa la temperatura en distintos momentos del día y en distintos puntos geográficos:


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

data = np.array([[20, 21, 22, 23],
                 [18, 19, 20, 21],
                 [16, 17, 18, 19],
                 [14, 15, 16, 17]])

sns.heatmap(data, cmap='coolwarm')
plt.show()

    

Este código generará un gráfico de calor, donde la intensidad del color indica la temperatura en cada punto de la matriz. La función sns.heatmap() acepta distintos argumentos opcionales para personalizar el gráfico, como el colormap utilizado (cmap, en este caso 'coolwarm').

Gráfico de superficie con Seaborn

Supongamos ahora que tenemos una función matemática f(x,y) que queremos visualizar en un gráfico de superficie. Podemos hacerlo con la función sns.surfaceplot() de la siguiente manera:


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

# Definimos la función
def f(x,y):
    return np.sin(np.sqrt(x**2 + y**2))

# Generamos los puntos de la superficie
x = np.linspace(-10, 10, 100)
y = np.linspace(-10, 10, 100)
X, Y = np.meshgrid(x, y)
Z = f(X,Y)

# Creamos el gráfico de superficie
sns.surfaceplot(X, Y, Z, cmap='coolwarm')
plt.show()

    

Este código generará un gráfico de superficie en 3D, donde la altura de la superficie indica el valor de la función f(x,y) en cada punto de la coordenada (x,y). La función sns.surfaceplot() acepta distintos argumentos opcionales para personalizar el gráfico, como el colormap (cmap, en este caso 'coolwarm') o el ángulo de visualización (view_elevation y view_azimuth).

Aplicación práctica

Gráficos de Superficie con Seaborn

Los gráficos de superficie se utilizan para representar funciones o datos en dos dimensiones (x, y) con una tercera dimensión (z) que corresponde a la altura. Seaborn ofrece la función sns.surfaceplot() para crear estos gráficos.


import seaborn as sns
import numpy as np

# Creamos los datos
x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

# Creamos el gráfico de superficie
sns.surfaceplot(X=X, Y=Y, Z=Z, cmap='viridis')

Gráficos de Calor con Seaborn

Los gráficos de calor representan datos no continuos en una matriz bidimensional, donde cada valor se representa con colores. Seaborn proporciona la función sns.heatmap() para crear estos gráficos.


import seaborn as sns
import numpy as np

# Creamos la matriz de datos
data = np.random.rand(10, 10)

# Creamos el gráfico de calor
sns.heatmap(data, cmap='rocket_r', annot=True)

En resumen, Seaborn es una poderosa librería para visualizar datos en tres dimensiones, ofreciendo herramientas como gráficos de superficie y calor que permiten representar de manera efectiva y personalizable diversas estructuras de datos.