2016-04-07 150 views
0

我最近建立了與一個Arduino和硬件的使用激光雷達繪製出一個房間交互的python腳本的所有鼠標點擊。一切都很好,但任何時候當你點擊使用maptotlib生成的圖表時,計算機就會發出詭異的聲音,並使正在運行的腳本崩潰。這部分是因爲我獲得了一臺300美元的電腦來運行它,所以它不是很強大。不過,我覺得即使是300美元的電腦也應該能夠處理鼠標點擊。忽略對matplotlib陰謀

我怎能無視鼠標點擊完全與matplotlib使計算機不會嚇壞了和崩潰的腳本?

如果這不是正確的解決方案,什麼可能是更好的解決方案?

編輯:這是一個交互式繪圖會話(排序的,我只是用新的數據替代舊的數據,不存在所謂的plot.ion()命令)。所以,我不能只保存情節並展示它。 Arduino不斷髮送數據。

回答

1

你可以嘗試繞過你的情節單擊事件:

import matplotlib.pyplot as plt 

fig = plt.figure() 

plt.axes(xlim = (0, 3), ylim = (0, 3)) 

def onclick(event): 
    pass 

fig.canvas.mpl_connect('button_press_event', onclick) 

plt.show() 

,但我懷疑這會工作。我建議的解決方案(如果東西上面不工作)是讓你的陰謀,並保存到文件(不顯示它):

plt.savefig('fname.png') 
plt.close() 

不是讓蟒蛇打開圖像(使用subprocess例如)無論你喜歡什麼外部工具在你的操作系統。

我在說這是因爲我懷疑你可能有某種軟件包不兼容導致你的腳本崩潰(也許是後端從mpl或其他你使用mpl的庫)。如果是這種情況,則需要更多信息來嘗試解決問題。

+0

謝謝,我會試試看。另外,請閱讀編輯。 –

1

我覺得這可能通過改變硬件更容易解決 - 你能暫時拔下鼠標,或帶在軌道墊阻止人們用它擺弄?

我認爲這是因爲您的崩潰腳本會以某種方式總是過程鼠標點擊,如果你不知道是什麼導致了崩潰,那麼你可能會更好只是確保不存在任何點擊。