У меня есть 10 изображений цифр 0-9, каждый с 28x28 пикселями, содержащихся в массиве X
формы (28**2, 10)
.метод drawplot для подзаголовков
Я обновляю X
с новыми пикселями внутри цикла, и я хотел бы обновить свой сюжет на каждой итерации.
В настоящее время мой код будет создавать 100 отдельных цифр.
def plot_output(X):
"""grayscale images of the digits 0-9
in 28x28 pixels in pyplot
Input, X is of shape (28^2, 10)
"""
n = X.shape[1] # number of digits
pixels = (28,28) # pixel shape
fig, ax = plt.subplots(1,n)
# cycle through digits from 0-9
# X input array is reshaped for each 10 digits
# to a (28,28) vector to plot
for i in range(n):
wi=X[:,i] # w = weights for digit
wi=wi.reshape(*pixels)
ax[i].imshow(wi,cmap=plt.cm.gist_gray,
interpolation='gaussian', aspect='equal')
ax[i].axis('off')
ax[i].set_title('{0:0d}'.format(i))
plt.tick_params(axis='x', which='both', bottom='off',
top='off', labelbottom='off')
plt.show()
for i in range(100):
X = init_pix() # anything that generates a (728, 10) array
plot_output(X)
Я попытался с помощью plt.draw()
и pt.canvas.draw()
, но я не могу показаться, чтобы правильно реализовать. Я также пробовал plt.clf()
, который тоже не работал для меня.
Я смог сделать это с использованием линий и одной оси, используя this post, но я не могу заставить его работать на подзаговорах.
спасибо! Это хорошо работает, я взял этот ответ с 'plt.ion()' и включил его в свой ответ. Я не обнаружил, что мне пришлось включать и отключать интерактивный режим, хотя –
@alexmcf жаль, что неясно, ['plt.ion()'] (http://matplotlib.org/api/pyplot_api.html#matplotlib. pyplot.ion) на самом деле я имел в виду, включив его в интерактивном режиме. 'ion' предположительно означает ** I ** неактивный режим ** ВКЛ ** (обратите внимание на жирный шрифт). Если вам не нужно поворачиваться, если выключено после цикла, это интересно, потому что в моем тестировании, если бы я не отключал его, окончательный 'plt.show()' не блокировал бы, программа продолжалась бы, и когда это закончилось, сюжет был автоматически закрыт. – jedwards
Спасибо, это был намек, который мне нужен :) для меня 'fig.canvas.draw()' было необходимо. – ppasler