2013-08-29 69 views
4

我正在嘗試使用matplotlib進行圖表可視化,但每次運行項目時都會很煩人地尋找一個窗口。有沒有辦法強制它在其他窗口之上?我使用OSX 10.8和PyCharm IDE和已經嘗試過OSX如何將Matplotlib窗口放在前面?

from pylab import get_current_fig_manager() 
get_current_fig_manager().window.raise_() 

AttributeError: 'FigureManagerMac' object has no attribute 'window' 

失敗,我會很感激任何其他的想法。

+0

你在使用'show()'後試過這個嗎? – Mark

回答

1

這對我的作品從IPython的:

from pylab import get_current_fig_manager 
fm = get_current_fig_manager() 
fm.show() 

我還沒有發現在顯示出()本身並不工作,但情況。

1

你打電話給window.raise_()是來自PyQT。 事實上,你可以提出這樣的窗口,但你需要:你做任何其他業務matplotlib

而且

import matplotlib 
matplotlib.use('Qt4Agg') 

    • 集PyQt4的作爲後端
    • 要麼你修復你的導入語句(刪除括號)或保存導入並通過圖

    window = fig.canvas.manager.window 
    
    • 只有這樣,你可以調用window.raise_()和窗口將在pycharm面前。
+0

也像'''matplotlib.use('Qt5Agg')''' – Mark

1

[cphlewis]有一個很好的答案。我發現自己經常這樣做,所以我定義了一個小函數來將所有窗口彈出到表面:

def pop_all(): 
    #bring all the figures hiding in the background to the foreground 
    all_figures=[manager.canvas.figure for manager in matplotlib.\ 
     _pylab_helpers.Gcf.get_all_fig_managers()] 
    [fig.canvas.manager.show() for fig in all_figures] 
    return len(all_figures) 
相關問題