仕事の都合上、ここ数週間matplotlibをゴリゴリに弄り倒している。
…のだが、ここにきてかなりの不自由を強いられ困っている。
やりたい事は至極単純。
matplotlib単体でScatter Plotをアニメーション表示する、ただそれだけ。
…しかし、これが思いの外えげつないことになってしまった。
まず、matplotlibでアニメーションする時はどうやらpyplot.figure()を呼び出してから描画せねばならないらしい。
何故かって? 知らん。
サンプルが全部そうなってるから、致し方ない。
続いて、プロット関連のコマンドをジェネレータ表記にしてやらねばならないのだがこれがまた厄介。
Line PlotとScatter Plotとで全く流儀が違うのだが、Web上の公式サンプルはLine Plotの例ばかりで全く参考にならない。
結局試行錯誤を強いられ、Scatter Plotするだけで半日近く費やしてしまった。
更に、グラフの体裁を整えようとした所でドハマり。
xlim/ylim/climが見つかりませんとか、単にアニメーション対応しただけでこうも流儀が違うのかと。
出来る事ならサンプルコードをバンバンメーリングリストに載っけて文句垂れたい所なのだが、業務用のえげつないコードだから外に出せる筈もなく、コードを簡略化してしまうと肝心の症状が再現しないとかorz
原因が何なのかと問われれば、matplotlibのえげつなさ。
その一言に尽きる。
Pythonのライブラリのくせに、同じ操作を実現する手法がいくつもあったりして、とかくPythonらしくないのである。
尚且つ、上に述べたpyplot直描きとpyplot.figure()描きの場合を例に採ると、前者では使えて後者では使えない、もしくはその逆といった記法があれこれ存在する。
ぶっちゃけ、こんなんイチイチ調べてらんない。
Python随一のプロットモジュールなんだから、もっと機能を洗練させて欲しい。
多機能なのは認めるけど、ラインプロット以外のほんの少し凝ったプロットをしたいと思った途端アホみたいに面倒臭くなっちゃうから、なかなか人にも勧め辛い。
少なくとも、この面倒臭さはgnuplotには無かったからなぁ…。