Estoy tratando de mostrar un gráfico de pares creando desde scatter_matrix en el marco de datos de pandas. Así es como se crea la trama de pares:
# Create dataframe from data in X_train # Label the columns using the strings in iris_dataset.feature_names iris_dataframe = pd.DataFrame(X_train, columns=iris_dataset.feature_names) # Create a scatter matrix from the dataframe, color by y_train grr = pd.scatter_matrix(iris_dataframe, c=y_train, figsize=(15, 15), marker='o', hist_kwds={'bins': 20}, s=60, alpha=.8, cmap=mglearn.cm3)
Quiero mostrar el diagrama de pares para que se vea así;
Estoy usando Python v3.6 y PyCharm y no estoy usando Jupyter Notebook.
Este código funcionó para mí usando Python 3.5.2:
import pandas as pd import matplotlib.pyplot as plt %matplotlib inline from sklearn import datasets iris_dataset = datasets.load_iris() X = iris_dataset.data Y = iris_dataset.target iris_dataframe = pd.DataFrame(X, columns=iris_dataset.feature_names) # Create a scatter matrix from the dataframe, color by y_train grr = pd.plotting.scatter_matrix(iris_dataframe, c=Y, figsize=(15, 15), marker='o', hist_kwds={'bins': 20}, s=60, alpha=.8)
Para pandas versión < v0.20.0.
Gracias a michael-szczepaniak por señalar que esta API había quedado obsoleta.
grr = pd.scatter_matrix(iris_dataframe, c=Y, figsize=(15, 15), marker='o', hist_kwds={'bins': 20}, s=60, alpha=.8)
Solo tuve que quitar la pieza cmap=mglearn.cm3
, porque no pude hacer que mglearn funcionara. Hay un problema de discrepancia de versión con sklearn.
Para no mostrar la imagen y guardarla directamente en un archivo, puede usar este método:
plt.savefig('foo.png')
también eliminar
# %matplotlib inline
Solo una actualización de la excelente respuesta de Vikash. Las dos últimas líneas ahora deberían ser:
grr = pd.plotting.scatter_matrix(iris_dataframe, c=Y, figsize=(15, 15), marker='o', hist_kwds={'bins': 20}, s=60, alpha=.8)
La función scatter_matrix se ha movido al paquete de trazado , por lo que la respuesta original, aunque correcta, ahora está en desuso.
Así que el código completo sería ahora:
import pandas as pd import matplotlib.pyplot as plt %matplotlib inline from sklearn import datasets iris_dataset = datasets.load_iris() X = iris_dataset.data Y = iris_dataset.target iris_dataframe = pd.DataFrame(X, columns=iris_dataset.feature_names) # create a scatter matrix from the dataframe, color by y_train grr = pd.plotting.scatter_matrix(iris_dataframe, c=Y, figsize=(15, 15), marker='o', hist_kwds={'bins': 20}, s=60, alpha=.8)