Background using imshow blurs after iteration on tkinter
The background is not the problem, you are drawing multiple transparent plots on top of each other without removing the previous one; hence, they stack and blur the background.
To fix, you can add this in you update function
for c in ax.collections:
c.remove()
It shows some artifacts for me, but at least you get to see the correct picture without rethinking the whole code structure.