Matriz de dispersión (SPLOM) en matplotlib

Datos de ejemplo

Considera los siguientes datos a modo de ejemplo:

import numpy as np
import pandas as pd

# Simulación de datos
rng = np.random.RandomState(0)
df = pd.DataFrame(rng.normal(size = (100, 4)),
                  columns = ["A", "B", "C", "D"])

Matriz de dispersión en matplotlib con scatter_matrix

Una matriz de dispersión (o SPLOM) dibuja cada par de columnas numéricas una contra otra, lo que permite inspeccionar rápidamente la correlación y la distribución de varias variables a la vez. La función scatter_matrix está en pandas.plotting y se construye sobre matplotlib, así que acepta un data frame directamente.

import pandas.plotting as pdp
import matplotlib.pyplot as plt

pdp.scatter_matrix(df)

# plt.show()

Matriz de dispersión (SPLOM) en matplotlib

Diagonal

Por defecto la diagonal muestra un histograma de cada variable. Fija diagonal = "kde" para mostrar en su lugar una estimación de densidad tipo núcleo.

import pandas.plotting as pdp
import matplotlib.pyplot as plt

pdp.scatter_matrix(df, diagonal = "kde")

# plt.show()

Diagonal de una matriz de dispersión en matplotlib

Marcadores y transparencia

Cambia la forma del marcador con marker y su transparencia con alpha, útil para detectar puntos solapados.

import pandas.plotting as pdp
import matplotlib.pyplot as plt

pdp.scatter_matrix(df, marker = "o", alpha = 0.4)

# plt.show()

Marcadores y transparencia de una matriz de dispersión en matplotlib

Color por grupo

scatter_matrix reenvía los argumentos adicionales a las llamadas internas de scatter, así que pasa un array de colores a c para colorear los puntos por grupo.

import pandas.plotting as pdp
import matplotlib.pyplot as plt
import numpy as np

grupo = np.where(df["A"] > 0, "#4C72B0", "#C44E52")
pdp.scatter_matrix(df, c = grupo)

# plt.show()

Color por grupo de una matriz de dispersión en matplotlib

Fundamentals of Data Visualization

A Primer on Making Informative and Compelling Figures

Comprar en Amazon

También te puede interesar