web-dev-qa-db-fra.com

Affichage du tracé de paire dans Pandas dataframe

J'essaie d'afficher un tracé de paire en créant à partir de scatter_matrix dans pandas dataframe. C'est ainsi que le tracé de paire est créé:

# 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)

Je veux afficher le tracé de la paire pour ressembler à ceci;

Enter image description here

J'utilise Python v3.6 et PyCharm et je n'utilise pas Jupyter Notebook.

11
user3848207

Ce code a fonctionné pour moi en utilisant 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)

Pour pandas version <v0.20.0.

Merci à michael-szczepaniak pour avoir signalé que cette API était obsolète.

grr = pd.scatter_matrix(iris_dataframe, c=Y, figsize=(15, 15), marker='o',
                        hist_kwds={'bins': 20}, s=60, alpha=.8)

Je viens de supprimer le cmap=mglearn.cm3 pièce, parce que je n'ai pas pu faire fonctionner mglearn. Il y a un problème d'incompatibilité de version avec sklearn.

Pour ne pas afficher l'image et l'enregistrer directement dans un fichier, vous pouvez utiliser cette méthode:

plt.savefig('foo.png')

Supprimer également

# %matplotlib inline

Enter image description here

19
Vikash Singh

Juste une mise à jour de l'excellente réponse de Vikash. Les deux dernières lignes devraient maintenant être:

grr = pd.plotting.scatter_matrix(iris_dataframe, c=Y, figsize=(15, 15), marker='o',
                                 hist_kwds={'bins': 20}, s=60, alpha=.8)

La fonction scatter_matrix a été déplacée dans le package traçage, donc la réponse d'origine, bien que correcte, est désormais déconseillée.

Ainsi, le code complet serait maintenant:

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)
12
Michael Szczepaniak

Ceci est également possible en utilisant seaborn :

import seaborn as sns

df = sns.load_dataset("iris")
sns.pairplot(df, hue="species")

Seaborn pairplot of iris data

2
Alexander

enter image description here tout d'abord utiliser pip install mglearn puis importez le mglearn

le code sera comme ça ...

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import pandas as pd
import mglearn
import matplotlib.pyplot as plt

iris_dataframe=pd.DataFrame(X_train,columns=iris_dataset.feature_names)
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)
plt.show()
1
Rahul Kumar Gupta

Je sais enfin comment le faire avec PyCharm.

Importez simplement matploblib.plotting comme plt à la place:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import mglearn
from pandas.plotting import scatter_matrix

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

iris_dataset = load_iris()

X_train,X_test,Y_train,Y_test = train_test_split(iris_dataset['data'],iris_dataset['target'],random_state=0)
iris_dataframe = pd.DataFrame(X_train,columns=iris_dataset.feature_names)

grr = scatter_matrix(iris_dataframe,c = Y_train,figsize = (15,15),marker = 'o',
                        hist_kwds={'bins':20},s=60,alpha=.8,cmap = mglearn.cm3)
plt.show()

Ensuite, cela fonctionne parfaitement comme ci-dessous:

Plot image

1
R.Zhan