六年后,当我尝试确定backend可以使用哪个时,我遇到了一个类似的问题。 请注意下面的注意事项-
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
可以推断出,交换新文件backend就像matplotlib.pyplot强制新文件后重新导入一样简单backend
matplotlib.use('WXAgg',warn=False, force=True)
from matplotlib import pyplot as plt
print "Switched to:",matplotlib.get_backend()
Switched to: WXAgg
对于仍然遇到问题的人,此代码将打印出: Non Gui后端列表; Gui后端列表; 然后尝试使用每个Gui后端来查看它是否存在并正常运行。
import matplotlib
gui_env = [i for i in matplotlib.rcsetup.interactive_bk]
non_gui_backends = matplotlib.rcsetup.non_interactive_bk
print ("Non Gui backends are:", non_gui_backends)
print ("Gui backends I will test for", gui_env)
for gui in gui_env:
print ("testing", gui)
try:
matplotlib.use(gui,warn=False, force=True)
from matplotlib import pyplot as plt
print (" ",gui, "Is Available")
plt.plot([1.5,2.0,2.5])
fig = plt.gcf()
fig.suptitle(gui)
plt.show()
print ("Using ..... ",matplotlib.get_backend())
except:
print (" ",gui, "Not found")
注意事项:自3.3.0版以来,matplotlib发生了变化