When you first start using matplotlib and plot a graph, it can get annoying to find out that the code control doesn't move forward until you close the plot window. There are obvious alternatives like using

and one with a dynamically scaling axis:

*show(block=True)*or functions like*ion()*, but I found that the fastest is to use*blit*, because it updates only the portions of the graph that needs to be updated. You could try timing it to check.**import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], 'ro')
def init():
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
return ln,
def update(frame):
xdata.append(frame)
ydata.append(np.sin(frame))
ln.set_data(xdata, ydata)
return ln,
ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
init_func=init,** **blit****=True)
plt.show()**

` `

```
```

There are also some other simpler (but slower) examples I found on StackOverflow:

and

**#----scatter plot randomly**

import numpy as np

import matplotlib.pyplot as plt

plt.axis([0, 10, 0, 1])

for i in range(10):

y = np.random.random()

plt.scatter(i, y)

plt.pause(0.05)

plt.show()import numpy as np

import matplotlib.pyplot as plt

plt.axis([0, 10, 0, 1])

for i in range(10):

y = np.random.random()

plt.scatter(i, y)

plt.pause(0.05)

plt.show()

and

*#---plot random graph*

import matplotlib.pyplot as plt

import numpy as np

plt.ion()

for i in range(50):

y = np.random.random([10,1])

plt.plot(y)

plt.draw()

plt.pause(0.0001)

plt.clf()import matplotlib.pyplot as plt

import numpy as np

plt.ion()

for i in range(50):

y = np.random.random([10,1])

plt.plot(y)

plt.draw()

plt.pause(0.0001)

plt.clf()

and one with a dynamically scaling axis:

**#----using animation and autoscale. The best yet**

from datetime import datetime

from matplotlib import pyplot

from matplotlib.animation import FuncAnimation

from random import randrange

x_data, y_data = [], []

figure = pyplot.figure()

line, = pyplot.plot_date(x_data, y_data, '-')

def update(frame):

x_data.append(datetime.now())

y_data.append(randrange(0, 100))

line.set_data(x_data, y_data)

figure.gca().relim()

figure.gca().autoscale_view()

return line,

animation = FuncAnimation(figure, update, interval=200)

pyplot.show()from datetime import datetime

from matplotlib import pyplot

from matplotlib.animation import FuncAnimation

from random import randrange

x_data, y_data = [], []

figure = pyplot.figure()

line, = pyplot.plot_date(x_data, y_data, '-')

def update(frame):

x_data.append(datetime.now())

y_data.append(randrange(0, 100))

line.set_data(x_data, y_data)

figure.gca().relim()

figure.gca().autoscale_view()

return line,

animation = FuncAnimation(figure, update, interval=200)

pyplot.show()