Veamos un ejemplo de uso sencillo de la función seaborn.lmplot:
tips = sns.load_dataset("tips")
sns.lmplot(x = "total_bill", y = "tip", data = tips);
La función, tal y como esperábamos, ha entrenado un sencillo modelo de regresión lineal y ha mostrado la recta de regresión y el intervalo de confianza del 95%. Todo esto nos permite tener una idea más clara de la relación entre las variables en análisis.
Podemos utilizar el parámetro hue para separar nuestro conjunto de datos según los valores que tome una variable categórica, y mostrar los puntos correspondientes a cada grupo con colores distintos y con una recta de regresión para cada uno de ellos:
sns.lmplot(x = "total_bill", y = "tip", data = tips, hue = "time");
Podemos añadir una dimensión adicional mediante el uso de facets:
sns.lmplot(x = "total_bill", y = "tip", data = tips, hue = "time", col = "sex");
...e incluso dos dimensiones adicionales mostrando un criterio de segmentación en columnas y otro en filas:
sns.lmplot(x = "total_bill", y = "tip", data = tips, hue = "time", col = "sex", row = "smoker");
Como ya sabemos, en el uso de facets estamos un tanto limitados por la cardinalidad de las variables involucradas: si es excesivamente alta, el número de "facets" (gráficas) a generar haría que éstas se mostrasen demasiado pequeñas. Si solo estamos haciendo uso de facets en columnas, podemos limitar el número de columnas con el parámetro col_wrap:
sns.lmplot(x = "total_bill", y = "tip", data = tips, hue = "time", col = "day", col_wrap = 3);