Отображение парного графика в кадре данных Pandas

Я пытаюсь отобразить парный график, создавая из scatter_matrix в Pandas dataframe. Вот как создается парный сюжет:

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

3 ответов


этот код работал для меня, используя 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)

для панд версии

спасибо Майкл-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


просто обновление отличного ответа 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)

я, наконец, знаю, как это сделать с PyCharm.

просто импортировать matploblib.plotting as 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