簡體   English   中英

在Pandas數據框中顯示配對圖

[英]Displaying pair plot in Pandas data frame

我試圖通過在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和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版本<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)

我只需要刪除cmap=mglearn.cm3 ,因為我無法使mglearn工作。 sklearn存在版本不匹配問題。

要不顯示圖像並將其直接保存到文件,您可以使用以下方法:

plt.savefig('foo.png')

也刪除

# %matplotlib inline

在此輸入圖像描述

只是更新了Vikash的優秀答案。 最后兩行現在應該是:

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

scatter_matrix函數已移至繪圖包,因此原始答案雖然正確,但現已棄用。

所以完整的代碼現在是:

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

虹膜數據的Seaborn配對圖

我終於知道如何用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()

然后它完美如下:

繪制圖像

在此輸入圖像描述 首先使用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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM