web-dev-qa-db-ja.com

Pandas dataframeでペアプロットを表示

pandas dataframeでscatter_matrixから作成してペアプロットを表示しようとしています。これがペアプロットの作成方法です。

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

ペアプロットを表示して、次のようにします。

Enter image description here

Python v3.6 and PyCharm を使用していますが、Jupyter Notebookは使用していません。

11
user3848207

このコードは、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)

pandas version <v0.20.0。

michael-szczepaniak に感謝します。このAPIは廃止されていたことを指摘してくれました。

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

Mglearnを動作させることができなかったため、cmap=mglearn.cm3の一部を削除する必要がありました。 sklearnにはバージョンの不一致の問題があります。

画像を表示せずに直接ファイルに保存するには、次の方法を使用できます。

plt.savefig('foo.png')

削除も

# %matplotlib inline

Enter image description here

19
Vikash Singh

Vikashの優れた答えの更新です。最後の2行は次のようになります。

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

scatter_matrix関数はplottingパッケージに移動されたため、元の答えは修正されましたが、現在は廃止されています。

したがって、完全なコードは次のようになります。

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

これは 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 最初に使用するpip install mglearn次にmglearnをインポートします

コードは次のようになります...

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

私はついにPyCharmでそれを行う方法を知っています。

インポートするmatploblib.plotting代わりにpltとして:

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

次に、以下のように完璧に動作します:

Plot image

1
R.Zhan