Предыдущие сюжеты накладываются на новые сюжеты с использованием интерактивного matplotlib - PullRequest
0 голосов
/ 07 сентября 2018

Escenario
Я хочу обновить значения тепловой карты с задержкой в ​​1 секунду. Цель состоит в том, чтобы представить эволюцию Q-таблицы в проблеме обучения с подкреплением.

Error
Проблема в том, что фигура тепловой карты обновляется, но значения сохраняются вместо замененных. enter image description here

Код
Q изначально является панорамированием нулей для панд DatraFrame
Функция для создания тепловой карты морского побережья:

# Helper functions to draw, update and get values of the table
def draw_Table(Q):
    table = sns.heatmap(Q, cmap='Blues', annot=True, linewidths=.5, cbar=False, 
                linecolor='black', square=True).set_title('Q-Table')
    return table  

Вот основной функционал:

plt.ion()
plt.figure(figsize = (10,10))
for i in range(EPISODES):

    print('Episode [{}/{}]'.format(i,EPISODES))
    print('Current Q-Table')

    # Some code that updates the values of Q

    # Update the new Q-Value
    if 'previous' in globals(): del previous
    previous = draw_Table(Q)
    plt.pause(1)

plt.ioff()
plt.show()

1 Ответ

0 голосов
/ 07 сентября 2018

Было найдено решение (согласно комментариям), очищающее оси с помощью:

# Update the new Q-Value
if 'previous' in globals(): 
    previous.axes.clear()
previous = draw_Table(Q)

[Это было отредактировано из вопроса в ответ]

...