Buscamos por internet y así brindarte la respuesta a tu inquietud, en caso de inquietudes puedes dejarnos tu inquietud y te contestamos con mucho gusto.
La solución obvia es dejar que el regplot
solo dibuje la línea de regresión, pero no los puntos y agréguelos a través de un gráfico de dispersión habitual, que tiene el color c
argumento.
g = sns.jointplot(X, y, kind='reg', scatter = False )
g.ax_joint.scatter(X,y, c=classes)
Me las arreglé para encontrar una solución que es exactamente lo que necesito. Gracias a @ImportanceOfBeingErnest que me dio la idea de dejar que el regplot
dibuja solo la línea de regresión.
Solución:
import pandas as pd
classes = np.array([1., 1., 1., 1., 1., 1., 1., 1., 2., 2., 2., 2., 2., 2., 2.,
2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2., 2.,
2., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 3.,
3., 3., 3., 3., 3., 3., 3.])
df = pd.DataFrame(map(list, zip(*[X.T, y.ravel().T])))
df = df.reset_index()
df['index'] = classes[:]
g = sns.jointplot(X, y, kind='reg', scatter = False )
for i, subdata in df.groupby("index"):
sns.kdeplot(subdata.iloc[:,1], ax=g.ax_marg_x, legend=False)
sns.kdeplot(subdata.iloc[:,2], ax=g.ax_marg_y, vertical=True, legend=False)
g.ax_joint.plot(subdata.iloc[:,1], subdata.iloc[:,2], "o", ms = 8)
plt.tight_layout()
plt.show()
Te mostramos las reseñas y valoraciones de los lectores
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)