Home > Backend Development > Python Tutorial > How Can I Efficiently Update Matplotlib Plots Without Replotting?

How Can I Efficiently Update Matplotlib Plots Without Replotting?

DDD
Release: 2024-12-03 05:05:13
Original
845 people have browsed it

How Can I Efficiently Update Matplotlib Plots Without Replotting?

Updating Matplotlib Plots Efficiently

To update plots in Matplotlib while avoiding repeated plotting, consider the following options:

1. Clearing and Replotting with Clear Method

Call graph1.clear() and graph2.clear() before redrawing the plot. This ensures a clean slate, but can be slow.

2. Updating Data of Plot Objects

Update the data of existing plot objects instead of replotting entirely. This is faster, but requires the data shape to remain constant. Manual axis limit adjustment may be necessary.

To demonstrate the second option:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

import matplotlib.pyplot as plt

import numpy as np

 

# Define initial data

x = np.linspace(0, 6*np.pi, 100)

y = np.sin(x)

 

# Create figure and plot

fig = plt.figure()

ax = fig.add_subplot(111)

line1, = ax.plot(x, y, 'r-')

 

# Iterate through phases and update data

for phase in np.linspace(0, 10*np.pi, 500):

    line1.set_ydata(np.sin(x + phase))

    fig.canvas.draw()

    fig.canvas.flush_events()

Copy after login

This method efficiently updates the plot data in real-time without redrawing the entire plot.

The above is the detailed content of How Can I Efficiently Update Matplotlib Plots Without Replotting?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template