Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengoptimumkan Animasi Matplotlib untuk Pengumpulan Data Masa Nyata?

Bagaimana untuk Mengoptimumkan Animasi Matplotlib untuk Pengumpulan Data Masa Nyata?

Linda Hamilton
Linda Hamiltonasal
2024-11-11 20:07:02542semak imbas

 How to Optimize Matplotlib Animations for Real-Time Data Collection?

Menghidupkan Plot Matplotlib: Mengoptimumkan Pengumpulan Data

Dalam aplikasi pengumpulan data, adalah penting untuk mengemas kini plot secara dinamik tanpa melukis semula keseluruhan graf. Pengoptimuman ini meningkatkan prestasi, terutamanya apabila mengumpul data untuk tempoh yang panjang.

Masalah: Melukis Semula atau Animasi Berasaskan Selang?

Secara tradisinya, kemas kini plot melibatkan sama ada mengosongkan dan melukis semula plot atau menganimasikannya di selang tetap. Walau bagaimanapun, kedua-dua kaedah tidak sesuai untuk pengumpulan data masa nyata. Melukis semula menjadi perlahan dari semasa ke semasa, manakala animasi berasaskan selang masa gagal mengemas kini plot dengan segera apabila data tiba.

Penyelesaian: Penambahan Mata Bertambah

Untuk mengemas kini plot secara dinamik hanya apabila data baharu diterima , pertimbangkan untuk menggunakan API animasi matplotlib, khususnya fungsi FuncAnimation. Fungsi ini membolehkan anda mentakrifkan fungsi yang mengemas kini plot secara berterusan.

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

Dalam contoh ini, hl ialah objek garis dan fungsi talian_update memanjangkan datanya dengan titik data baharu. Apabila data baharu diterima, hanya hubungi update_line untuk mengemas kini plot dengan lancar dan cekap.

Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Animasi Matplotlib untuk Pengumpulan Data Masa Nyata?. 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