【问题标题】:matplotlib backends - do I care?matplotlib 后端 - 我在乎吗?
【发布时间】:2015-03-19 08:14:09
【问题描述】:
>>> 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 后端开发和测试我的东西,而使用我的代码的其他人可能在他们的系统上使用GTKAgg 后端,我的东西可能会以我不会注意到的方式对他们造成破坏 - 或者是所有后端都需要或多或少以相同的方式“工作”?

【问题讨论】:

  • 我已经遇到了一些问题,即双击和三次单击事件在不同后端的处理方式不同,所以我知道存在一些差异。如果有任何需要注意的严重问题,我很感兴趣..

标签: python backend matplotlib


【解决方案1】:

如果您将 matplotlib 嵌入到应用程序中,则后端很重要,在这种情况下,您需要使用与您用于构建应用程序的工具包相匹配的后端(GTK、Qt、TkInter、WxWindows)。如果您还以简单的交互方式使用 matplotlib,您还需要使用与您机器上可用的后端相匹配的后端(如果您正在运行 Gnome,则为 GTK,如果您正在运行 KDE,则为 Qt 等)(虽然大多数库已经安装在大多数机器上)

后端的绘图层部分(Cairo、Agg...)在功能方面也很重要:您可以根据该层提供的内容与您的应用程序需要的内容(抗锯齿、Alpha 通道、导出格式)进行选择...)。因此,如果您使用 TkAgg 进行开发和测试,而其他人则使用例如TkCairo,有些事情可能行不通。 OTOH,使用 QtAgg 运行肯定会以非常相似的方式工作,只要您坚持使用 matplotlib API 并且不进入包装的工具包层。

【讨论】:

    猜你喜欢
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 2017-11-09
    • 2023-01-24
    • 2020-05-31
    • 2016-12-23
    • 2016-08-10
    相关资源
    最近更新 更多