Dalam jawaban tentang cara memperbarui plot secara dinamis dalam loop di notebook ipython (dalam satu sel) , contoh diberikan tentang cara memperbarui plot secara dinamis di dalam notebook Jupyter dalam loop Python. Namun, ini bekerja dengan menghancurkan dan membuat ulang plot pada setiap iterasi, dan komentar di salah satu utas mencatat bahwa situasi ini dapat diperbaiki dengan menggunakan %matplotlib nbagg
sihir new-ish , yang menyediakan figur interaktif yang disematkan di notebook, bukan daripada gambar statis.
Namun, nbagg
fitur baru yang luar biasa ini tampaknya sepenuhnya tidak terdokumentasi sejauh yang saya tahu, dan saya tidak dapat menemukan contoh bagaimana menggunakannya untuk memperbarui plot secara dinamis. Jadi pertanyaan saya adalah, bagaimana cara memperbarui plot yang ada secara efisien di notebook Jupyter / Python, menggunakan backend nbagg? Karena memperbarui plot secara dinamis di matplotlib adalah masalah yang rumit secara umum, contoh kerja sederhana akan sangat membantu. Sebuah penunjuk ke dokumentasi apapun tentang topik juga akan sangat membantu.
Untuk memperjelas apa yang saya minta: yang ingin saya lakukan adalah menjalankan beberapa kode simulasi untuk beberapa iterasi, lalu menggambar plot dari statusnya saat ini, lalu menjalankannya untuk beberapa iterasi lagi, lalu memperbarui plot untuk mencerminkan keadaan saat ini, dan seterusnya. Jadi idenya adalah menggambar plot dan kemudian, tanpa interaksi apa pun dari pengguna, memperbarui data dalam plot tanpa merusak dan membuat ulang semuanya.
Berikut adalah beberapa kode yang sedikit dimodifikasi dari jawaban untuk pertanyaan terkait di atas, yang mencapai ini dengan menggambar ulang seluruh gambar setiap saat. Saya ingin mencapai hasil yang sama, tetapi menggunakan lebih efisien nbagg
.
%matplotlib inline
import time
import pylab as pl
from IPython import display
for i in range(10):
pl.clf()
pl.plot(pl.randn(100))
display.display(pl.gcf())
display.clear_output(wait=True)
time.sleep(1.0)
while True:
ke loop for, ketika loop berakhir saya mendapatkan dua gambar statis dari plot terakhir, daripada gambar nbagg interaktif. Tahu mengapa demikian?