Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mencapai Perencanaan Masa Nyata Data Dalam Gelung Sementara dalam Matplotlib?

Bagaimanakah Saya Boleh Mencapai Perencanaan Masa Nyata Data Dalam Gelung Sementara dalam Matplotlib?

Susan Sarandon
Susan Sarandonasal
2024-12-15 12:10:11401semak imbas

How Can I Achieve Real-Time Plotting of Data Within a While Loop in Matplotlib?

Plot Masa Nyata dalam Gelung Sementara

Apabila cuba memaparkan data daripada sumber video dalam masa nyata, pengguna sering menghadapi kesukaran dalam mengemas kini plot dalam gelung sementara. Satu isu biasa ialah plot kekal statik sehingga gelung selesai. Isu ini berpunca daripada kaedah yang digunakan untuk memaparkan data dinamik.

Dalam coretan kod yang disediakan:

while i < 1000:
    temp_y = np.random.random()
    x.append(i)
    y.append(temp_y)
    plt.scatter(i, temp_y)
    i += 1
    plt.show()

Gelung menambahkan titik data, memplot satu titik, dan kemudian memanggil plt.show (). Walau bagaimanapun, plt.show() menyekat GUI dan menghalang kod lain daripada dijalankan sehingga tetingkap ditutup secara manual, mengakibatkan kemas kini tertunda.

Untuk mencapai plot masa nyata, anda perlu menggunakan plt.pause() . Berikut ialah versi yang disemak:

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()

Perubahan utama ialah penambahan plt.pause(0.05) selepas memplot setiap titik. plt.pause() kedua-duanya menarik data yang dikemas kini dan menjalankan gelung acara GUI. Argumen 0.05 menentukan kelewatan selama 50 milisaat, memberikan masa GUI untuk memaparkan titik dan mengendalikan interaksi pengguna (cth., menutup tetingkap).

Kod yang diubah suai ini harus memastikan plot dikemas kini dengan lancar dalam masa nyata, membenarkan pengguna untuk menggambarkan data secara dinamik.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Perencanaan Masa Nyata Data Dalam Gelung Sementara dalam Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn