在Pandas数据框中显示配对图

use*_*207 11 python plot python-3.x pandas

我试图通过在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)
Run Code Online (Sandbox Code Playgroud)

我想显示对情节看起来像这样;

在此输入图像描述

我使用的是Python v3.6和PyCharm,并没有使用Jupyter Notebook.

Vik*_*ngh 19

这段代码使用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)
Run Code Online (Sandbox Code Playgroud)

对于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)
Run Code Online (Sandbox Code Playgroud)

我只需要删除这cmap=mglearn.cm3件作品,因为我无法使用mglearn工作.sklearn存在版本不匹配问题.

要不显示图像并将其直接保存到文件,您可以使用以下方法:

plt.savefig('foo.png')
Run Code Online (Sandbox Code Playgroud)

也删除

# %matplotlib inline
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Mic*_*iak 13

只是更新了Vikash的优秀答案.最后两行现在应该是:

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

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)
Run Code Online (Sandbox Code Playgroud)


Ale*_*der 9

这也可以使用seaborn

import seaborn as sns

df = sns.load_dataset("iris")
sns.pairplot(df, hue="species")
Run Code Online (Sandbox Code Playgroud)

虹膜数据的 Seaborn 配对图