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.