Mój kod generuje wiele wykresów z danych za pomocą matplotibu i chciałbym móc przewijać do przodu i do tyłu za ich pomocą w demonstracji na żywo (może poprzez naciśnięcie klawiszy do przodu i do tyłu lub za pomocą Mysz). Obecnie muszę zapisać każdy z nich osobno, a następnie użyć osobnej przeglądarki obrazów, aby je przewinąć. Czy istnieje sposób to zrobić w całości z poziomu Pythona?Przewiń do tyłu i do przodu przez działki matplotlib
Odpowiedz
łatwy sposób osiągnąć, że zapisuje się na liście krotkę X i Y macierzy, a następnie użyć do obsługi zdarzeń, które odbiera kolejną (x, y), parę być naniesiona:
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()
W tym kodzie wybieram strzały right
ido iteracji, ale możesz je zmienić.
Dziękuję bardzo jabaldonedo --- Twój przykład jest teraz w moim projekcie, więc mogę potwierdzić innym, że to działa. W moim przypadku "key_event" to zamknięcie w zamknięciu wewnątrz dekoratora. Nie rozumiem przyczyny - więc pomóżcie mi, że nie jest to błędna interpunkcja na końcu poprzedniej linijki - ale ciągle otrzymywałem "ogólną nazwę" curr_pos "nieokreśloną", niezależnie od tego, że jest to jasno zdefiniowane przez 'curr_pos = 0'. Zdecydowałem się na rozwiązanie w postaci 'if not hasattr (key_event," curr_pos "): key_event.curr_pos = 0' w miejsce' global curr_pos'. W razie potrzeby użyłbym 'key_event .__ dict __ = {}', aby zresetować. –
- 1. Przewijanie animacji jQuery do tyłu i do przodu
- 2. Dlaczego są dwa ukośniki - do przodu i do tyłu?
- 3. Czy udokumentowano podwójne operatory rurociągów do przodu/do tyłu?
- 4. Kontrola UIPageViewController podczas przesuwania do tyłu lub do przodu
- 5. routing kręgosłupa wykrywanie, czy do przodu czy do tyłu wciśnięty
- 6. Jak wysłać obiekty w plikach NIB do przodu/do tyłu?
- 7. Przechodzenie do tyłu przez gif znacznie wolniejszy niż poruszanie się do przodu
- 8. wykonać javascsript do pętli na przemian do przodu i do tyłu
- 9. wyślij podzbiór do tyłu
- 10. matplotlib: generowanie wektora działki
- 11. Jak przejść do przodu i do tyłu między zatwierdzeniami w git?
- 12. Do przodu FFT obraz i do tyłu FFT obraz, aby uzyskać ten sam wynik
- 13. Jak wprowadzać słowo przekierowane byobu do przodu i do tyłu za pomocą CTRL + strzałka?
- 14. RGB do CMYK i algorytm do tyłu
- 15. Dodaj do NSTextView i przewiń
- 16. Delphi: Przynieś TImage do przodu
- 17. Alternatywa słowa przekierowanego do przodu/do tyłu w celu uwzględnienia symboli - np. ***
- 18. Wyślij subview do tyłu
- 19. Jak wyodrębnić dane z działki matplotlib
- 20. Działki 3D wykorzystujące maplot3d z matplotlib-
- 21. Wypełnianie powyżej/poniżej linii działki matplotlib
- 22. Wybrany obiekt automatycznie przeniesiony do przodu
- 23. Obrót theta = 0 na matplotlib polarnego działki
- 24. TransitionDrawable: automatyczne przejście do tyłu po ukończeniu
- 25. Jak ponownie wykorzystać działki w matplotlib?
- 26. Crystal Reports - Ułatwia drukowanie z przodu/z tyłu
- 27. Port Apache do przodu
- 28. Ionic Przewiń do elementu
- 29. UITableView Przewiń do sekcji
- 30. matplotlib - zmiana koloru znacznika wzdłuż linii działki
Czy czas na wygenerowanie działek jest zbyt długi, aby to zrobić? To znaczy. 'naciśnij przycisk -> wygeneruj wykres -> pokaż go i tak dalej. –
@AleksanderLidtke Mogę je wygenerować na żywo, ale jak mogę przewijać do przodu i do tyłu przez kreślone przeze mnie wątki? – phoenix
wywołania zwrotne. Zobacz http://matplotlib.org/users/event_handling.html. W tej kwestii to pytanie jest zbyt szerokie. – tacaswell