Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencapai Plotting Tidak Menyekat dengan Matplotlib?

Bagaimana untuk Mencapai Plotting Tidak Menyekat dengan Matplotlib?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 14:17:30784semak imbas

How to Achieve Non-Blocking Plotting with Matplotlib?

Menyelesaikan Masalah Plotting Tidak Menyekat dengan Matplotlib

Sifat menyekat Matplotlib boleh menghalang visualisasi data masa nyata. Artikel ini meneroka penyelesaian untuk mengatasi isu ini, menggunakan contoh yang disediakan dalam pertanyaan asal.

Masalah: Isu Bahagian Belakang Qt4Agg

Kod asal menggunakan Qt4Agg sebagai bahagian belakang, yang diketahui akan dihadapi had dalam pelaksanaan tanpa sekatan. Menggunakan show(block=False) boleh mengakibatkan tetingkap beku kerana Qt4Agg tidak menyokong fungsi ini.

Penyelesaian: Mod Interaktif dan Jeda

Untuk mencapai plot tanpa sekatan dengan matplotlib, dua langkah utama adalah penting:

  1. Dayakan mod interaktif menggunakan plt.ion(), yang membolehkan matplotlib bertindak balas kepada acara GUI semasa kod anda terus dijalankan.
  2. Panggil plt.pause( masa) (cth., plt.pause(0.001) seperti dalam penyelesaian yang disediakan) untuk memberi masa GUI mengendalikan acara, termasuk lukisan semula plot anda.

Kod Kemas Kini

Berikut ialah kod yang dikemas kini yang menggabungkan penyelesaian ini:

<code class="python">import numpy as np
from matplotlib import pyplot as plt

def main():
    plt.axis([-50,50,0,10000])
    plt.ion()
    plt.show()

    x = np.arange(-50, 51)
    for pow in range(1,5):   # plot x^1, x^2, ..., x^4
        y = [Xi**pow for Xi in x]
        plt.plot(x, y)
        plt.draw()
        plt.pause(0.001)
        input("Press [enter] to continue.")

if __name__ == '__main__':
    main()</code>

Kod ini akan membolehkan anda mengemas kini plot sedia ada dalam cara tanpa menyekat, memberikan pengalaman visualisasi yang lancar dan responsif.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Plotting Tidak Menyekat dengan Matplotlib?. 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