Хорошо, я понял.Проблема заключалась в том, что вы определяли участок после печати imshow
.Итак, ваш первый сюжет был перезаписан вторым.Чтобы ваш код работал, просто поменяйте местами порядок ваших команд следующим образом.Кроме того, я не понимаю, почему вы используете plt.plot()
в конце.
plt.subplot(2, 5, i + 1) # <-- You have put this command after imshow
plt.imshow(plottable_image, cmap='gray_r')
Вот еще одна альтернатива для ваших знаний:
fig = plt.figure()
for i in range(10):
im_idx = np.argwhere(y == i)[0]
plottable_image = np.reshape(X[im_idx], (28, 28))
ax = fig.add_subplot(2, 5, i+1)
ax.imshow(plottable_image, cmap='gray_r')
Вы также можете еще больше сократить Скоттакод (размещен ниже) с использованием следующего:
fig, ax = plt.subplots(2,5)
for i, ax in enumerate(ax.flatten()):
im_idx = np.argwhere(y == i)[0]
plottable_image = np.reshape(X[im_idx], (28, 28))
ax.imshow(plottable_image, cmap='gray_r')