Mã của tôi tạo ra một số ô từ dữ liệu bằng matplotib và tôi muốn có thể di chuyển về phía trước và ngược qua chúng trong phần trình diễn trực tiếp (có thể bằng cách bấm các phím chuyển tiếp và lùi hoặc sử dụng con chuột). Hiện tại tôi phải lưu từng ảnh dưới dạng ảnh riêng biệt và sau đó sử dụng trình xem hình ảnh riêng biệt để cuộn qua chúng. Có cách nào để làm điều này hoàn toàn từ bên trong python?Cuộn lùi và chuyển tiếp qua các ô matplotlib
Trả lời
Một cách dễ dàng để đạt được điều đó được lưu trữ trong một danh sách một tuple của x và y mảng và sau đó sử dụng một sự kiện handler mà chọn các cặp tiếp theo (x, y) để được vẽ:
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()
Trong mã này, tôi chọn các mũi tên right
và left
để lặp lại, nhưng bạn có thể thay đổi chúng.
Cảm ơn nhiều jabaldonedo --- ví dụ của bạn bây giờ là trong dự án của tôi và vì vậy tôi có thể xác nhận cho những người khác rằng nó hoạt động. Trong trường hợp của tôi 'key_event' là một đóng trong một bao đóng bên trong một trang trí. Tôi không hiểu được nguyên nhân --- vì vậy hãy giúp tôi không có dấu chấm câu sai ở cuối dòng trước --- nhưng tôi vẫn nhận được "tên chung" không được định nghĩa ", mặc dù thực tế nó được xác định rõ ràng bởi' curr_pos = 0'. Tôi đã chọn một giải pháp trong biểu mẫu 'if not hasrr (key_event, "curr_pos"): key_event.curr_pos = 0' thay cho 'global curr_pos'. Tôi sẽ sử dụng 'key_event .__ dict __ = {}' để đặt lại nếu cần. –
- 1. dired lùi/chuyển tiếp chức năng
- 2. Quản lý lùi lại và chuyển tiếp trong Richfaces
- 3. Emacs: di chuyển đến một ký tự nhất định, chuyển tiếp và lùi
- 4. Cuộn lùi tất cả các đường di chuyển hoặc thả bảng và sửa đổi di chuyển (bắt đầu từ đầu)
- 5. các ô bề mặt trong matplotlib
- 6. Tăng tốc các ô phân tán matplotlib
- 7. các ô kiểu 'circos' với matplotlib?
- 8. Tạo nút Tiếp theo để chuyển qua các tab jQuery
- 9. Máy chủ Linux Cập nhật PHP cuộn lùi
- 10. Đơn vị công việc, tùy chọn cuộn lùi
- 11. Lặp qua các ô và thêm vào một phạm vi
- 12. chuyển tiếp hình ảnh nền trang khi cuộn qua css3/javascript
- 13. Nhúng các ô nhỏ bên trong các ô con trong matplotlib
- 14. Xóa các đường lùi lại
- 15. Thay đổi từ chuyển tiếp/lùi/từ-từ cho Từ khóa CamelCase trong Emacs
- 16. Lặp qua các ô DataGridView
- 17. Python matplotlib chồng các ô phân tán chồng lên nhau
- 18. Dừng UITableView qua cuộn ở trên cùng và dưới cùng?
- 19. Force UITableView để cuộn đến đỉnh của các ô
- 20. Chuyển tiếp hoàn hảo - thông qua các chức năng ảo
- 21. Chuyển tiếp sự kiện chuột qua các lớp/divs
- 22. Lặp qua một loạt các ô mẫu
- 23. C# DataGridView, các ô lớn: Nội dung không bao giờ hiển thị đầy đủ, di chuyển bỏ qua ô
- 24. cách chuyển tiếp UIWebView cuộn đến UIScrollView? (có điều kiện)
- 25. matplotlib: inset trục cho nhiều ô vuông
- 26. UICollectionVIew: Animate các ô khi chúng cuộn trong
- 27. matplotlib: thêm đường tròn vào ô
- 28. Cách tạo cuộn div cuộn có thể cuộn khi nhấp và di chuột qua jQuery
- 29. Hoạt ảnh chuyển tiếp cuộn trang trên iPhone
- 30. Làm cách nào để làm cho các ô bar tự động chuyển qua các màu khác nhau?
Thời gian cần thiết để tạo các ô sống quá lâu để bạn có thể làm điều đó không? I E. 'nhấn một nút -> tạo ra một âm mưu -> hiển thị nó' và như vậy. –
@AleksanderLidtke Tôi có thể tạo chúng trực tiếp nhưng làm cách nào để cuộn tiếp và lùi qua các ô mà tôi đã tạo? – phoenix
gọi lại. Xem http://matplotlib.org/users/event_handling.html. Vì nó là viết tắt câu hỏi này là quá rộng. – tacaswell