Tengo dos marcos de datos con nombres de columna idénticos. Me gustaría producir diagramas de dispersión de diagrama de pares para comprender cómo interactúan las variables. Me gustaría trazar el primer marco de datos con un color diferente al de la segunda matriz. es posible? Parece que la scatter_matrix
función sobrescribe la trama anterior de forma predeterminada.
¿Por qué se sobrescribe mi primera trama generada? ¿Cómo puedo visualizar ambos marcos de datos a la vez usando la scatter_matrix
función?
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
dat = pd.DataFrame({'x%i' % ii: np.random.uniform(-1, 1, 100) for ii in range(3)})
dat2 = pd.DataFrame({'x%i' % ii: np.random.uniform(0, 1, 100) for ii in range(3)})
ax = pd.plotting.scatter_matrix(dat, c='orange')
pd.plotting.scatter_matrix(dat2, c='k')
# pd.plotting.scatter_matrix(dat2, c='k', ax=ax) # results in error
plt.savefig('example')
(La solución que deseo debe tener dos colores de punto separados, con un conjunto que va de 0 a 1 y el otro que va de -1 a 1.)
Si está dispuesto a usar otra biblioteca llamada seaborn
y si entendí correctamente, puede hacerlo sns.pairplot
fácilmente. Solo necesita concat
tanto el marco de datos como crear una columna para usar como hue
con el nombre que desea en la leyenda.
import seaborn as sns
sns.pairplot(pd.concat([dat.assign(hue='dat'),
dat2.assign(hue='dat2')]),
hue='hue',
diag_kind='hist',
palette=['orange', 'k'])
Nota: Encuentro que la diagonal no se ve bien con el histograma en este caso, prefiero usarla en 'kde'
lugar del 'hist'
parámetro diag_kind
, pero depende de lo que desee.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras