在Pandas数据框中显示配对图

时间:2017-03-04 05:30:25

标签: python python-3.x pandas plot

我试图通过在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和PyCharm,而且我没有使用Jupyter Notebook。

5 个答案:

答案 0 :(得分:18)

这段代码使用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

Enter image description here

答案 1 :(得分:12)

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

    File f = new File("images/black.png");
    Image img = new Image(f.toURI().toString());

scatter_matrix 功能已移至绘图包,因此原来的答案虽然正确,但现已弃用。

所以完整的代码现在是:

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

答案 2 :(得分:2)

我终于知道如何用PyCharm做到这一点。

只需将TypeName导入为matploblib.plotting

plt

然后它完美如下:

Plot image

答案 3 :(得分:2)

也可以使用seaborn

import seaborn as sns

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

Seaborn pairplot of iris data

答案 4 :(得分:1)

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