matplotlib后端 – 我关心吗?

>>> import matplotlib >>> print matplotlib.rcsetup.all_backends [u'GTK', u'GTKAgg', u'GTKCairo', u'MacOSX', u'Qt4Agg', u'Qt5Agg', u'TkAgg', u'WX', u'WXAgg', u'CocoaAgg', u'GTK3Cairo', u'GTK3Agg', u'WebAgg', u'nbAgg', u'agg', u'cairo', u'emf', u'gdk', u'pdf', u'pgf', u'ps', u'svg', u'template'] 

看看所有的后端!

我需要关心哪个后端正在使用? 例如,如果我只使用TkAgg后端来开发和testing我的东西,而使用我的代码的其他人可能会在他们的系统上使用GTKAgg后端,那么我的东西可能会以我不会注意到的方式突破 – 或者都需要后端或多或less的“工作”相同的方式?

如果将matplotlibembedded到应用程序中,后端主要是很重要的,在这种情况下,您需要使用与您用来构build应用程序的工具包相匹配的后端(GTK,Qt,TkInter,WxWindows)。 如果你还以一种简单的交互方式使用matplotlib,那么你也需要使用一个与你的机器上可用的后端相匹配的后端(如果你运行的是Gnome,则为GTK,如果你运行的是KDE,则为Qt等)尽pipe大多数机器上已经安装了大多数库)

后端(Cairo,Agg …)的绘图层部分在function方面也很重要:您可以根据图层提供的内容(与应用程序需要的相比)来select它(反锯齿,alpha通道,导出格式… )。 所以如果你开发和testing使用TkAgg和其他人运行例如TkCairo,有些事情可能无法正常工作。 使用QtAgg运行的OTOH只要坚持使用matplotlib API,就不会在包装的工具包层中实现。