¿Puedo generar y mostrar una imagen diferente durante cada bucle con Matplotlib?

Soy nuevo en Matplotlib y Python. Yo uso principalmente Matlab. Actualmente, estoy trabajando con un código de Python donde quiero ejecutar un bucle. En cada bucle, haré un procesamiento de datos y luego mostraré una imagen basada en los datos procesados. Cuando voy al siguiente bucle, quiero que la imagen almacenada anteriormente se cierre y genere una nueva imagen basada en los datos más recientes.

En otras palabras, quiero un código de Python equivalente al siguiente código de Matlab:

x = [1 2 3];

for loop = 1:3

    close all;

    y = loop * x;

    figure(1);

    plot(x,y)

    pause(2)

end

Probé el siguiente código de Python para lograr mi objetivo:

import numpy as np
import matplotlib
import matplotlib.lib as plt

from array import array
from time import sleep

if __name__ == '__main__':

    x = [1, 2, 3]

    for loop in range(0,3):

        y = numpy.dot(x,loop)

        plt.plot(x,y)

       plt.waitforbuttonpress

    plt.show()

Este código pone todos los gráficos superpuestos en la misma figura. Si pongo elplt.show() comando dentro del bucle for, solo se muestra la primera imagen. Por lo tanto, no pude replicar mi código Matlab en Python.

Respuestas a la pregunta(1)

Su respuesta a la pregunta