ในคำตอบของวิธีอัปเดตพล็อตแบบไดนามิกในลูปในโน้ตบุ๊ก ipython (ภายในเซลล์เดียว) จะมีตัวอย่างวิธีการอัปเดตพล็อตแบบไดนามิกภายในสมุดบันทึก Jupyter ภายในลูป Python อย่างไรก็ตามการทำงานนี้ทำได้โดยการทำลายและสร้างพล็อตใหม่ในการทำซ้ำทุกครั้งและความคิดเห็นในหนึ่งในเธรดตั้งข้อสังเกตว่าสถานการณ์นี้สามารถปรับปรุงได้โดยใช้%matplotlib nbagg
เวทมนตร์ใหม่ซึ่งให้รูปแบบโต้ตอบที่ฝังอยู่ในสมุดบันทึก มากกว่าภาพนิ่ง
อย่างไรก็ตามnbagg
ฟีเจอร์ใหม่ที่ยอดเยี่ยมนี้ดูเหมือนจะไม่มีเอกสารโดยสมบูรณ์เท่าที่ฉันสามารถบอกได้และฉันไม่พบตัวอย่างวิธีใช้เพื่ออัปเดตพล็อตแบบไดนามิก ดังนั้นคำถามของฉันคือวิธีหนึ่งจะอัปเดตพล็อตที่มีอยู่ในสมุดบันทึก Jupyter / Python อย่างมีประสิทธิภาพโดยใช้แบ็กเอนด์ nbagg ได้อย่างไร เนื่องจากการอัปเดตพล็อตแบบไดนามิกใน matplotlib เป็นปัญหาที่ยุ่งยากโดยทั่วไปตัวอย่างการทำงานที่เรียบง่ายจึงเป็นตัวช่วยอย่างมาก ตัวชี้ไปยังเอกสารใด ๆ ในหัวข้อก็มีประโยชน์อย่างยิ่งเช่นกัน
เพื่อให้ชัดเจนว่าฉันต้องการอะไร: สิ่งที่ฉันต้องการทำคือเรียกใช้โค้ดจำลองสำหรับการทำซ้ำสองสามครั้งจากนั้นวาดพล็อตของสถานะปัจจุบันจากนั้นเรียกใช้เพื่อทำซ้ำอีกสองสามครั้งจากนั้นอัปเดตพล็อตเพื่อสะท้อน สถานะปัจจุบันและอื่น ๆ ดังนั้นแนวคิดคือการวาดพล็อตจากนั้นโดยไม่มีการโต้ตอบใด ๆ จากผู้ใช้ให้อัปเดตข้อมูลในพล็อตโดยไม่ทำลายและสร้างสิ่งใหม่ทั้งหมด
ต่อไปนี้เป็นโค้ดที่แก้ไขเล็กน้อยจากคำตอบของคำถามที่เชื่อมโยงด้านบนซึ่งทำได้โดยการวาดรูปใหม่ทุกครั้ง ฉันต้องการบรรลุผลลัพธ์เดียวกัน แต่มีประสิทธิภาพมากขึ้นโดยใช้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:
เป็น for loop เมื่อลูปสิ้นสุดลงฉันจะได้ภาพคงที่สองภาพของพล็อตสุดท้ายแทนที่จะเป็น nbagg แบบโต้ตอบ มีความคิดว่าทำไม?