我想將Matplotlib中的交互式繪圖和python中的命令行接口Cmd結合起來。我怎樣才能做到這一點? 我可以使用線程嗎?我嘗試了以下方法:如何在Python中結合Cmd和Matplotlib
from cmd import Cmd
import matplotlib.pylab as plt
from threading import Thread
class MyCmd(Cmd):
def __init__(self):
Cmd.__init__(self)
self.fig = plt.figure()
self.ax = self.fig.add_subplot(1,1,1)
def do_foo(self, arg):
self.ax.plot(range(10))
self.fig.canvas.draw()
if __name__=='__main__':
c = MyCmd()
Thread(target=c.cmdloop).start()
plt.show()
它打開一個數字窗口,我可以在控制檯中輸入實際執行的命令。當執行「foo」命令時,它將繪製數字窗口。到目前爲止,一切都很好。但是,當我重新進入控制檯時,控制檯似乎卡住了,現在有新的命令窗口。但是當我點擊數字窗口時,控制檯會輸出一個新的命令提示符,然後我可以輸入一個新的命令。 看來這兩個循環並不是真正的交錯或什麼的。有更好,更常見的方法嗎?
請編輯您的問題。在編輯時,請閱讀頁面右側的格式說明。請編輯你的代碼,看起來像代碼。 – 2010-08-12 21:14:35
它不起作用?你使用的是什麼版本的Python?什麼平臺?線程是如何定義的(你似乎沒有導入它)? – robert 2010-08-12 22:06:44
我在Linux上使用Python 2.6。 – Christian 2010-08-13 06:01:35