Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencapai Plotting Masa Nyata dalam Matplotlib While Loop?

Bagaimana untuk Mencapai Plotting Masa Nyata dalam Matplotlib While Loop?

DDD
DDDasal
2024-12-06 04:33:171041semak imbas

How to Achieve Real-Time Plotting in a Matplotlib While Loop?

Memplot Masa Nyata dalam Gelung Sementara dengan Matplotlib

Dalam soalan ini, pengguna cuba memplot data dalam masa nyata menggunakan OpenCV dan matplotlib. Walau bagaimanapun, perancangan masa nyata tidak berfungsi seperti yang diharapkan. Pengguna memberikan contoh ringkas yang mana plot tidak mengisi titik satu demi satu, sebaliknya menunggu sehingga gelung selesai.

Untuk menangani isu ini, kita perlu memahami cara matplotlib mengemas kini plot dalam masa nyata. Secara lalai, matplotlib menjangkakan panggilan fungsi ke plt.show() untuk memaparkan plot dan kemudian menyekat sehingga tetingkap plot ditutup. Tingkah laku ini menghalang data daripada diplot dalam masa nyata.

Penyelesaiannya ialah menggunakan fungsi plt.pause(). plt.pause(0.05) menarik data baharu, menjalankan gelung acara GUI dan menjeda plot selama 0.05 saat. Ini membolehkan plot dikemas kini dalam masa nyata dan bertindak balas kepada interaksi tetikus.

Berikut ialah kod diubah suai yang berjaya memplot 10 mata dalam masa nyata:

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

Dengan pelarasan ini, plot akan kini memaparkan setiap titik semasa ia dijana, membenarkan visualisasi masa nyata.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Plotting Masa Nyata dalam Matplotlib While Loop?. 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