Kodum, matplotib kullanan verilerden bir dizi grafik çiziyor ve canlı bir gösterimde (örneğin ileriye ve geriye tuşlarına basarak) ileriye ve geriye doğru kaydırma yapmak istiyorum. fare). Şu anda her birini ayrı ayrı bir resim olarak kaydetmem ve ardından bunları kaydırmak için ayrı bir resim görüntüleyici kullanmam gerekiyor. Bunu python içinden yapmanın bir yolu var mı?Matplotlib grafikleri ile geriye doğru ve ileriye doğru kaydır
cevap
bu elde etmek için kolay bir yol bir listede x ve y dizilerin bir demet kaydedilerek ve daha sonra çizilen bir sonraki (x, y) çift alır bir işleyici olayını kullanmak edilir:
import numpy as np
import matplotlib.pyplot as plt
# define your x and y arrays to be plotted
t = np.linspace(start=0, stop=2*np.pi, num=100)
y1 = np.cos(t)
y2 = np.sin(t)
y3 = np.tan(t)
plots = [(t,y1), (t,y2), (t,y3)]
# now the real code :)
curr_pos = 0
def key_event(e):
global curr_pos
if e.key == "right":
curr_pos = curr_pos + 1
elif e.key == "left":
curr_pos = curr_pos - 1
else:
return
curr_pos = curr_pos % len(plots)
ax.cla()
ax.plot(plots[curr_pos][0], plots[curr_pos][1])
fig.canvas.draw()
fig = plt.figure()
fig.canvas.mpl_connect('key_press_event', key_event)
ax = fig.add_subplot(111)
ax.plot(t,y1)
plt.show()
Bu kodda yinelemek için right
ve left
oklarını seçiyorum, ancak bunları değiştirebilirsiniz.
Çok teşekkürler jabaldonedo --- örneğiniz projemde şimdi ve diğerlerinin çalıştığını teyit edebilirim. Benim durumumda 'key_event' bir dekoratörün içinde bir kapanış içinde bir kapanış. Sebebini yağmalamıyorum --- bu yüzden bana bir önceki satırın ucunda hatalı bir noktalama işareti olmamasına yardım edin --- fakat "curr_pos" tanımlanmamış global adı "almaya devam ettim," curr_pos tarafından açıkça tanımlanmış olmasına rağmen " = 0 '. 'Global olmayan curr_pos' yerine "hasattr (key_event," curr_pos "): key_event.curr_pos = 0 'şeklinde bir çözüm seçtim. Gerekirse sıfırlamak için 'key_event .__ dict __ = {}' kullanırdım. –
- 1. İleriye doğru hareket etmekten çok daha yavaş bir gif ile geriye doğru hareket etmek
- 2. Geriye doğru geçişteki nankör sayısı
- 3. ZSH Bindkey Geriye Doğru Arama
- 4. İstek Tomcat örnekleri arasında ileriye doğru kaydırma
- 5. z Kabuğunda ileriye doğru ilerleyen bir sözcük
- 6. libvlc_media_player_set_position geriye doğru arama yaparken başarısız oluyor
- 7. Lambda işlevlerini geriye doğru nasıl gösterebilirim?
- 8. Tabloyu son kayıttan geriye doğru veya geriye doğru sorgulamak için etkin yöntem rayları
- 9. Bir STL listesinden geriye doğru nasıl yineliyorsunuz?
- 10. C++ 0x Tuples Elements Öğeleri Geriye doğru
- 11. CSS geçişi nasıl yapılır "geriye doğru" çalışır?
- 12. Geriye doğru gitme durumunda exoplayer'ın yeniden yüklenmesini nasıl önleyebilirim?
- 13. Matplotlib grafikleri, bash terminali
- 14. C Skaler tipini skaler olmayan ve geriye doğru nasıl dökerim?
- 15. MPMoviePlayerController ileriye doğru arama tuşu, videoyu IOS7'de mi durduruyor?
- 16. 'Luo' ifadeleri için Lua bayt kodu geriye doğru atlayabilir mi?
- 17. PyCharm, matplotlib grafiklerini doğru bir şekilde açamaz.
- 18. matplotlib xtick etiketleri doğru şekilde hizalanmamış
- 19. pandalar veri çerçevesindeki ileriye doğru belirli sütunları doldurun
- 20. git bir dalın ağaçtaki ilerleyişini ileriye doğru hareket ettirin
- 21. glVertexAttribPointer vec2 ama ileriye doğru sadece bir tane
- 22. Matplotlib 3d dönen grafikleri kaydetme
- 23. Dönüştürülmüş öğelerle ilgili perspektif neden geriye doğru görünüyor?
- 24. Range nesnesini "geriye doğru seçim" olarak ayarlamak mümkün mü?
- 25. ctrl-x o geriye doğru (diğer pencerenin tersi)?
- 26. Jquery'yi kullanarak bir zincirden geriye doğru nasıl geçersiniz?
- 27. doğru
- 28. Python'un liste anlama döngüleri sırası neden geriye doğru?
- 29. CAKeyFrameAnimation'da bir yolu geriye doğru oynatmak mümkün mü?
- 30. Powershell, standart komut istemiyle geriye doğru uyumlu mu?
Çizimleri oluşturmak için gereken süre, bunu yapmak için çok uzun süre mi yaşıyor? Yani 'bir düğmeye basın -> bir arsa oluştur -> göster 'vb. –
@AleksanderLidtke Onları canlı olarak oluşturabilirim ama yarattığım arazilerden nasıl ileri ve geri kaydırırım? – phoenix
geri aramalar. Http://matplotlib.org/users/event_handling.html sayfasına bakın. Ayakta olduğu gibi bu soru çok geniştir. – tacaswell