Matplotlib actualiza la trama en vivo

Quiero actualizar un diagrama de línea con matplotlib y me pregunto si hay una buena modificación del código, de modo que la línea trazada simplemente se actualice en lugar de volverse a dibujar cada vez. Aquí hay un código de muestra:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
matplotlib.style.use('ggplot')

plt.ion() 
fig=plt.figure()

i=0
df = pd.DataFrame({"time": [pd.datetime.now()], "value": 0}).set_index("time")
plt.plot(df);

while True:
    temp_y=np.random.random();
    df2 = pd.DataFrame({"time": [pd.datetime.now()], "value": temp_y}).set_index("time")
    df = df.append(df2)
    plt.plot(df)
    i+=1
    plt.show()
    plt.pause(0.000001) 

Como puede ver, el trazado se vuelve más y más lento después de un tiempo y creo que el gráfico de líneas se vuelve a dibujar cada iteración ya que cambia de color.

Respuestas a la pregunta(1)

Su respuesta a la pregunta