2011-08-23 3 views
39
>>> 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'] 

これらのバックエンドをすべて見てください!matplotlibバックエンド - 気にしますか?

どのバックエンドが使用されているか気にする必要がありますか?例えばTkAggバックエンドのみを使用して自分のものを開発してテストし、自分のコードを使用している他の人が自分のシステムにGTKAggバックエンドを使用している可能性があります。多かれ少なかれ "仕事"は同じように?

+1

私は既にダブルクリックとトリプルクリックのイベントが異なるバックエンドで異なる処理をしているのでいくつかの問題があります。私は注意すべき深刻な問題があれば興味があります.. – wim

答えて

37

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

バックエンドの描画レイヤー部分(Cairo、Agg ...)は、機能面でも重要です。レイヤーが提供する内容に応じて選択できます。アプリケーションのニーズ(アンチエイリアス、アルファチャンネル、エクスポート形式...)。したがって、TkAggを使用して開発し、テストし、他の人々が例えばTkCairo、いくつか動作しないかもしれません。 QtAggで動作するOTOHは、matplotlib APIに固執し、ラップされたツールキットレイヤーには届かない限り、非常によく似た方法で動作します。

関連する問題