Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana Mengemas kini Plot Matplotlib dengan Cekap Tanpa Tindanan?

Bagaimana Mengemas kini Plot Matplotlib dengan Cekap Tanpa Tindanan?

Mary-Kate Olsen
Lepaskan: 2024-12-15 10:42:15
asal
632 orang telah melayarinya

How to Efficiently Update Matplotlib Plots Without Overlaying?

Mengemas kini Plot dalam Matplotlib

Melukis semula plot dalam Matplotlib boleh mencabar, terutamanya apabila anda perlu mengemas kini plot tanpa menambahkan plot tambahan. Soalan ini meneroka cara untuk mengatasi isu ini.

Masalahnya berpunca daripada penggunaan Figure dan FigureCanvasTkAgg, yang mencipta plot baharu setiap kali fungsi plots() dipanggil. Ini membawa kepada berbilang plot ditindan di atas satu sama lain dan bukannya dikemas kini.

Untuk menyelesaikan masalah ini, dua pilihan tersedia:

Pilihan 1: Kosongkan dan Lompat Semula

Ini adalah pilihan yang paling mudah, tetapi ia juga yang paling perlahan. Ia melibatkan mengosongkan plot sedia ada sebelum memplot semula data baharu. Ini boleh dicapai dengan menambahkan graph1.clear() dan graph2.clear() pada permulaan fungsi plots(). Walaupun pendekatan ini mudah, ia adalah intensif dari segi pengiraan dan mungkin tidak sesuai untuk kemas kini masa nyata.

Pilihan 2: Kemas Kini Data

Pendekatan yang lebih cekap ialah dengan kemas kini data objek plot sedia ada. Ini memerlukan pengubahsuaian fungsi plots() untuk mengemas kini ydata baris daripada mencipta baris baharu. Kaedah ini jauh lebih pantas tetapi memerlukan pengendalian yang teliti terhadap bentuk data dan had paksi.

Contohnya:

# Update the y-data of the existing line
line1.set_ydata(np.sin(x + phase))
# Draw the updated plot
fig.canvas.draw()
# Flush any pending events
fig.canvas.flush_events()
Salin selepas log masuk

Pendekatan ini membolehkan kemas kini plot yang cekap tanpa perlu mengosongkan dan meletakkan semula keseluruhan angka itu. Ia amat berguna untuk visualisasi masa nyata data dinamik.

Atas ialah kandungan terperinci Bagaimana Mengemas kini Plot Matplotlib dengan Cekap Tanpa Tindanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan