web-dev-qa-db-ja.com

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バックエンドのみを使用して自分のものを開発およびテストし、自分のコードを使用している他の誰かがシステムでGTKAggバックエンドを使用している可能性がある場合、私のものは私が思いもしない方法で壊れる可能性があります気づいた-またはすべてのバックエンドが多かれ少なかれ同じように「動作」するために必要ですか?

48
wim

バックエンドは、アプリケーションにmatplotlibを埋め込む場合に主に重要です。この場合、アプリケーションのビルドに使用しているツールキットと一致するバックエンド(GTK、Qt、TkInter、WxWindows)を使用する必要があります。シンプルなインタラクティブな方法でmatplotlibも使用している場合は、マシンで利用可能なものと一致するバックエンドも使用する必要があります(Gnomeを実行している場合はGTK、KDEを実行している場合はQtなど)(ほとんどのライブラリはほとんどのマシンにすでにインストールされていますが)

バックエンドの描画レイヤー部分(Cairo、Agg ...)も機能の点で重要です。アプリケーションが必要とするもの(アンチエイリアシング、アルファチャネル、エクスポート形式など)と比較して、そのレイヤーが提供するものに応じて選択できます。 )。したがって、TkAggを使用して開発およびテストした場合、他の人はTkCairo、いくつかはうまくいかないかもしれません。 QtAggで実行するOTOHは、matplotlib APIに固執し、ラップされたツールキットレイヤーに到達しない限り、非常によく似た方法で動作します。

47
gurney alex