Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengemas kini Plot Matplotlib secara Dinamik dengan Data dari Port Bersiri?

Bagaimana untuk Mengemas kini Plot Matplotlib secara Dinamik dengan Data dari Port Bersiri?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 22:04:02182semak imbas

How to Dynamically Update Matplotlib Plots with Data from a Serial Port?

Mengemas Kini Plot Secara Dinamik dalam Matplotlib

Menguruskan visualisasi data dalam masa nyata boleh memberikan cabaran, terutamanya apabila mencari kaedah yang cekap mengemas kini plot tanpa menghalang prestasi atau pergantungan pada selang masa yang tidak dapat diramalkan. Siasatan ini meneroka penyelesaian yang berdaya maju untuk mengemas kini plot secara dinamik berdasarkan data yang diterima daripada port bersiri.

Untuk menangani kebimbangan yang dinyatakan mengenai prestasi perlahan apabila melukis semula keseluruhan plot berulang kali, penyelesaian berikut menggunakan mekanisme animasi dalam matplotlib untuk menganimasikan data dalam masa:

import matplotlib.pyplot as plt
import numpy

hl, = plt.plot([], [])

def update_line(hl, new_data):
    hl.set_xdata(numpy.append(hl.get_xdata(), new_data))
    hl.set_ydata(numpy.append(hl.get_ydata(), new_data))
    plt.draw()

# Call update_line when receiving data from the serial port to update the plot incrementally

Pendekatan ini dengan cekap memanjangkan data sedia ada tanpa lukisan semula lengkap, katering kepada keperluan khusus untuk mengemas kini plot hanya apabila data baharu diterima.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Plot Matplotlib secara Dinamik dengan Data dari Port Bersiri?. 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