में रोक/प्रारंभ/रोकें मैं कुछ मूल एनीमेशन के लिए matplotlib के एनीमेशन मॉड्यूल में FuncAnimation का उपयोग कर रहा हूं। यह फ़ंक्शन हमेशा एनीमेशन के माध्यम से loops। क्या कोई तरीका है जिसके द्वारा मैं माउस क्लिक करके एनीमेशन को रोक और पुनरारंभ कर सकता हूं?पाइथन matplotlib एनीमेशन
उत्तर
यहां a FuncAnimation example है जिसे मैंने माउस क्लिक पर रोक दिया है। चूंकि एनीमेशन जेनरेटर फ़ंक्शन द्वारा संचालित होता है, simData
, जब वैश्विक चर pause
सत्य है, तो उसी डेटा को उत्पन्न करने से एनीमेशन दिखाई देता है।
paused
का मूल्य एक घटना कॉलबैक की स्थापना करके चालू किए जाने पर:
def onClick(event):
global pause
pause ^= True
fig.canvas.mpl_connect('button_press_event', onClick)
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation
pause = False
def simData():
t_max = 10.0
dt = 0.05
x = 0.0
t = 0.0
while t < t_max:
if not pause:
x = np.sin(np.pi*t)
t = t + dt
yield x, t
def onClick(event):
global pause
pause ^= True
def simPoints(simData):
x, t = simData[0], simData[1]
time_text.set_text(time_template%(t))
line.set_data(t, x)
return line, time_text
fig = plt.figure()
ax = fig.add_subplot(111)
line, = ax.plot([], [], 'bo', ms=10)
ax.set_ylim(-1, 1)
ax.set_xlim(0, 10)
time_template = 'Time = %.1f s'
time_text = ax.text(0.05, 0.9, '', transform=ax.transAxes)
fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, simPoints, simData, blit=False, interval=10,
repeat=True)
plt.show()
यह काम करता है ...
anim = animation.FuncAnimation(fig, animfunc[,..other args])
#pause
anim.event_source.stop()
#unpause
anim.event_source.start()
@fred से दोनों जवाब संयोजन और @unutbu यहां, हम एनीमेशन बनाने के बाद एक ऑनक्लिक फ़ंक्शन जोड़ सकते हैं:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
def run_animation():
anim_running = True
def onClick(event):
nonlocal anim_running
if anim_running:
anim.event_source.stop()
anim_running = False
else:
anim.event_source.start()
anim_running = True
def animFunc(...args...):
# Animation update function here
fig.canvas.mpl_connect('button_press_event', onClick)
anim = animation.FuncAnimation(fig, animFunc[,...other args])
run_animation()
अब हम क्लिक के साथ एनीमेशन को रोक या शुरू कर सकते हैं।
matplotlib का कौन सा संस्करण आप चल रहे हैं? यह मेरे लिए काम नहीं करता है – bretcj7
@ bretcj7 मैं संस्करण 1.5.3 का उपयोग कर रहा हूं। क्षमा करें, उसमें उल्लेख किया जाना चाहिए था! – woodenflute
मुझे event_source.stop() या प्रारंभ के लिए matplotlib पर प्रलेखन प्रतीत नहीं होता है? क्या यह अस्तित्व में है? – bretcj7
- 1. एनीमेशन matplotlib
- 2. matplotlib से एनीमेशन स्पाइडर
- 3. परेशानी बचत matplotlib एनीमेशन
- 4. Matplotlib एनीमेशन सहेजें
- 5. पाइथन/Matplotlib
- 6. पाइथन matplotlib
- 7. पाइथन/matplotlib
- 8. matplotlib, कदम एनीमेशन द्वारा कदम
- 9. पाइथन के matplotlib/basemap
- 10. स्कैटर डेटासेट पाइथन matplotlib
- 11. पाइथन, numpy और matplotlib
- 12. पाइथन और matplotlib
- 13. matplotlib एनीमेशन को सहेज नहीं सकता
- 14. matplotlib
- 15. Matplotlib
- 16. matplotlib
- 17. matplotlib
- 18. matplotlib
- 19. सबप्लॉट्स और कलाकार के साथ matplotlib का उपयोग करके एनीमेशन
- 20. matplotlib
- 21. matplotlib?
- 22. matplotlib
- 23. matplotlib
- 24. matplotlib
- 25. matplotlib
- 26. matplotlib
- 27. पाइथन
- 28. पाइथन
- 29. पाइथन
- 30. पाइथन
बढ़िया, बहुत बहुत धन्यवाद! उसने मेरे लिए चाल बनाई। –
प्यारा, आसान, मनोरंजक, और एक तरह से, नास्तिक; https://youtu.be/TxmZ5sabk7U?t=17 या https://youtu.be/C1HuX6nQnQY?t=211 – uhoh