Включаете интерактивный режим plt.ion() и обновляете когда нужно. В этом случае plt.show() возвращается сразу после отрисовки, а не ждет пока не закроете окно.
Для задержки программы, так что бы окно не переставало реагировать на действия пользователя используйте plt.pause().
При очередной перерисовке надо что бы окно (fig) оставалось прежним, иначе будет моргание из-за постоянного удаления старого/создания нового окна, старое содержимое окна можно удалить с помощью fig.clear().
В общем в matplotlib не плохая документация и много примеров.