Saya benar-benar baru di matplotlib dan cukup berpengalaman tetapi berkarat dengan python dan saya berjuang untuk bekerja dengan matplotlib saat ini. Saya mencoba untuk menganimasikan suatu titik di plot, seperti ini: https://www.desmos.com/calculator/rv8gbimhon

Saya telah menulis kode untuk itu tetapi plot tidak memperbarui titik secara real time selama loop sementara, sebaliknya, loop sementara dijeda sampai saya menutup jendela plot dan iterasi berikutnya dari loop terjadi, membuka kembali plot dengan koordinat yang diperbarui. Apakah ada cara untuk memindahkan titik di matplotlib tanpa membuka dan menutup jendela?

Kode saya:

import numpy as np
import time
t = 0
start_time = time.time()
while t < 30:
    end_time = time.time()
    t = end_time - start_time
    print(t)
    plt.plot(t,t,"g^")
    plt.show()
0
Mixtli 4 April 2021, 20:18

1 menjawab

Jawaban Terbaik

Salah satu opsi untuk memperbarui plot dalam satu lingkaran adalah dengan mengaktifkan mode interaktif dan untuk memperbarui plot menggunakan jeda.

Sebagai contoh:

import numpy as np
import matplotlib.pyplot as plt
point = plt.plot(0, 0, "g^")[0]
plt.ylim(0, 5)
plt.xlim(0, 5)
plt.ion()
plt.show()

start_time = time.time()
t = 0
while t < 4:
    end_time = time.time()
    t = end_time - start_time
    print(t)
    point.set_data(t, t)
    plt.pause(1e-10)

Namun, untuk animasi yang lebih canggih, saya akan mengusulkan untuk menggunakan kelas animasi .

0
insulanus 4 April 2021, 20:58