Python Tutorial

Matplotlib update plot

Updating a matplotlib plot is straightforward. Create the data, the plot and update in a loop. Setting interactive mode on is essential: plt.ion(). This controls if the figure is redrawn every draw() command. If it is False (the default), then the figure does not update itself. Update plot example Copy the code below to test an interactive plot.

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10*np.pi, 100) y = np.sin(x)

plt.ion() fig = plt.figure() ax = fig.add_subplot(111) line1, = ax.plot(x, y, 'b-')

for phase in np.linspace(0, 10*np.pi, 100): line1.set_ydata(np.sin(0.5 * x + phase)) fig.canvas.draw()

Want more practice on this without setting anything up? PyChallenge has graded plotting exercises that run in the browser, and the error message tells you what went wrong.

matplotlib-update Capture of a frame of the program above

Explanation We create the data to plot using:

x = np.linspace(0, 10*np.pi, 100)
y = np.sin(x)

Turn on interacive mode using:

plt.ion()

Configure the plot (the 'b-' indicates a blue line):

fig = plt.figure()
ax = fig.add_subplot(111)
line1, = ax.plot(x, y, 'b-')

And finally update in a loop:

for phase in np.linspace(0, 10*np.pi, 100):
line1.set_ydata(np.sin(0.5 * x + phase))
fig.canvas.draw()

 

BackNext