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)
ペアプロットを表示して、次のようにします。
Python v3.6 and PyCharm を使用していますが、Jupyter Notebookは使用していません。
このコードは、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
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)
これは seaborn を使用しても可能です。
import seaborn as sns
df = sns.load_dataset("iris")
sns.pairplot(df, hue="species")
最初に使用する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()
私はついに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()
次に、以下のように完璧に動作します: