2012-03-17 36 views
15

Tôi muốn có lệnh "show" matplotlib trở về dòng lệnh trong khi hiển thị ô. Hầu hết các gói cốt truyện khác, như R, làm điều này. Nhưng pylab treo cho đến khi cửa sổ âm mưu đóng lại. Ví dụ:pylab matplotlib "show" đợi cho đến khi cửa sổ đóng

import pylab 
x = pylab.arange(0, 10, 0.1) 
y = pylab.sin(x) 
pylab.plot(x,y, 'ro-') 
pylab.show() # Python hangs here until the plot window is closed 

Tôi muốn có thể xem cốt truyện khi thực hiện truy vấn dòng lệnh. Tôi đang chạy Debian squeeze với python 2.6.6. My ~/.matplotlib/matplotlibrc chứa

backend  : GTKAgg 

Cảm ơn!

+2

Hãy thử sử dụng [IPython] (http://ipython.org/) –

+0

có nghĩa là 'ipython -pylab' để nhận được đa luồng. –

Trả lời

22

Thêm pylab.ion() (interactive mode) trước cuộc gọi pylab.show(). Điều đó sẽ làm cho giao diện người dùng chạy trong một chuỗi riêng biệt và cuộc gọi đến show sẽ trở lại ngay lập tức.

+1

Cảm ơn bạn. Hoạt động tốt. Với 'ion()', lệnh 'show()' không còn cần thiết nữa. – Sullivan

+1

Nó thực sự ngay lập tức trả về, nhưng tại sao con số treo ở đó cho thấy "Không đáp ứng" –

5

Bạn cần phải chạy nó như

$ ipython --pylab 

và chạy mã của bạn như

In [8]: x = arange(0,10,.1) 

In [9]: y = sin(x) 

In [10]: plot(x,y,'ro-') 

Out[10]: [<matplotlib.lines.Line2D at 0x2f2fd50>] 

In [11]: 

này mang đến cho bạn kịp thời cho trường hợp bạn muốn thay đổi các bộ phận khác hoặc vẽ hơn.

+0

Cảm ơn bạn. Điều này hoạt động tốt. – Sullivan

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