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