Я пытаюсь визуализировать t-SNE набора данных MIST с помощью поисковой фасетной сетки, но получаю ошибку при построении. Ниже код и ошибка
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
from sklearn import datasets
from sklearn import manifold
%matplotlib inline
data = datasets.fetch_openml('mnist_784',
version=1,
return_X_y=True
)
pixel_values, targets = data
targets = targets.astype(int)
single_image = pixel_values[1, :].reshape(28,28)
plt.imshow(single_image, cmap='gray')
tsne = manifold.TSNE(n_components=2, random_state=42)
transformed_data = tsne.fit_transform(pixel_values[:3000, :])
tsne_df = pd.DataFrame(np.column_stack((transformed_data, targets[:3000])), columns=["x", "y", "targets"])
tsne_df.loc[:,"targets"] = tsne_df.targets.astype(int)
grid = sns.FacetGrid(tsne_df, hue="targets", height=8)
grid.map(plt.scatter, "x", "y").add_legend()
Однако при запуске grid.map (plt.scatter, «x», «y») появляется следующая ошибка. Add_legend ()
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-18-84d161de948f> in <module>
----> 1 grid.map(plt.scatter, "x", "y").add_legend()
~/opt/miniconda3/envs/ml/lib/python3.7/site-packages/seaborn/axisgrid.py in map(self, func, *args, **kwargs)
736
737 # Get the current axis
--> 738 ax = self.facet_axis(row_i, col_j)
739
740 # Decide what color to plot with
~/opt/miniconda3/envs/ml/lib/python3.7/site-packages/seaborn/axisgrid.py in facet_axis(self, row_i, col_j)
866
867 # Get a reference to the axes object we want, and make it active
--> 868 plt.sca(ax)
869 return ax
870
~/opt/miniconda3/envs/ml/lib/python3.7/site-packages/matplotlib/pyplot.py in sca(ax)
856 m.canvas.figure.sca(ax)
857 return
--> 858 raise ValueError("Axes instance argument was not found in a figure")
859
860
ValueError: Axes instance argument was not found in a figure