使用matplotlib交互式,以前的图与新图重叠

时间:2018-09-07 15:45:29

标签: matplotlib interactive python-interactive

场景
我想以1秒的延迟更新热图的值。目的是表示强化学习问题中Q表的演变。

错误
问题在于,热图图正在更新,但是这些值保持不变。 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 :(得分:0)

找到解决方案(根据评论),使用以下方法清除了轴:

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

[这已从问题中编辑成答案]