2009-12-21 29 views
7

Tôi muốn tự động cập nhật âm mưu phân tán dựa trên dữ liệu trục y nhận được từ kết nối ổ cắm. Tôi đã sử dụng libpl matplot python ở chế độ tương tác để thực hiện điều này, nhưng trong khi cập nhật động nếu tôi di chuyển cửa sổ đến một vị trí khác hoặc thu nhỏ cửa sổ thì việc cập nhật cốt truyện dừng đột ngột. làm như thế nào?Chế độ tương tác trong matplotlib

Tôi đã đính kèm mã cập nhật động mẫu được sử dụng ở đây và cùng một sự cố cũng xuất hiện ở đây.

import matplotlib.pyplot as plt 
import random 
import time 
items = [25.5,26.7,23.4,22.5,20,13.4,15.6,-12,-16,20] 
x = [1,2,3,4,5,6,7,8,9,10] 

plt.ion() # Interactive on 

for i in range(1,100): 
    plt.title('graph plotting') 
    plt.ylabel('temperature') 
    plt.xlabel('time') 
    random.shuffle(items) 
    plt.plot(x,items,'ob-') 
    plt.axis([0, 10, -40, 40]) 
    plt.draw() 
    #time.sleep(2) 
    plt.clf() 
    plt.close() 

Trả lời

1

Để làm việc này, bạn cần phải có vòng lặp chính để xử lý sự kiện và trình xử lý sự kiện của bạn vẽ lại ô khi cửa sổ được thay đổi kích thước hoặc làm mới.

Bạn sẽ tìm thấy nhiều ví dụ về điều này trên web hoặc trong hướng dẫn.

Tôi nghĩ rằng điều này được xử lý tốt nhất bằng cách sử dụng bộ công cụ giao diện người dùng (ví dụ: wxPython), không sử dụng chế độ tương tác matplotlib. Tôi đã có a similar question trong quá khứ và có một số câu trả lời hay.

+0

Cảm ơn câu trả lời, tôi đã tìm kiếm các ví dụ xử lý sự kiện nhưng không thể tìm thấy nó (tôi là newbie to python), bạn có thể gửi cho tôi liên kết tới ít nhất một ví dụ như vậy không. – Sharath

+0

@Sharath: Bạn sẽ tìm thấy các liên kết trong câu trả lời tôi đã liên kết tới. – Ber

+0

@Ber: Tôi có nghĩa là xử lý sự kiện trong các ví dụ matplot và không phải wxPython, như các sự kiện tôi nhận được để thu nhỏ cửa sổ, di chuyển đến một vị trí khác, v.v. Cảm ơn trước – Sharath

3

This page chứa một vài ví dụ về các ô động với matplotlib và wxPython. Và here là một phiên bản với PyQt.

Các vấn đề liên quan