2016-08-18 88 views
1

我有一個集成了tkinter GUI以及matplotlib圖(使用pyplot)的程序。我遇到了無數麻煩,讓這個程序可以在各種Mac平臺上正常工作。主要的問題似乎是適當選擇後端。在Mac OS X上以編程方式爲Matplotlib選擇正確的後端

在某些情況下,程序運行良好沒有問題。在其他情況下,我碰到類似的問題,記錄在this question。實施那裏概述的解決方案可以解決這個問題,但是其他的系統會出現其他錯誤。這些其他錯誤的解決方案似乎是使用Qt4Agg後端。

必須有一些標準的方式來使用tkinter和matplotlib在同一時間獲得一個程序與蘋果電腦玩好。我如何以編程方式確保正在使用正確的後端,以便程序不會爲Mac用戶崩潰?

對不起,如果這是模糊的,但它是一個非常廣泛的問題。

回答

1

看到這個答案:How to switch backends in matplotlib/Python

從本質上說,如果你不知道哪個backend是可用的,下面的代碼應該加載了第一個backend可用在當前機器上。 (我只包括4個後端,還有其他幾個)。

import matplotlib 
gui_env = ['TKAgg','GTKAgg','Qt4Agg','WXAgg'] 
for gui in gui_env: 
    try: 
     print "testing", gui 
     matplotlib.use(gui,warn=False, force=True) 
     from matplotlib import pyplot as plt 
     break 
    except: 
     continue 
print "Using:",matplotlib.get_backend() 

Using: GTKAgg 
相關問題