matplotlibの図をBMPとしてクリップボードにコピーする関数作った。
よくデータ解析しているとmatplotlibで
ぐぐってみたらwxのバックエンドではツールバーにクリップボードにコピーするアイコンを追加するハックがあった。残念ながらこのパッチはマージされなかったようで、1.4.2でもクリップボードにコピーできない。
で、やっぱり自分で作る。
matplotlibのデフォルトのバックエンドはいまQt4Aggだと思うのでQtでやるにはどうしたら良いのかなとぐぐってみたら、こんな質問があって、もしウィンドウズなら
figure(facecolor='w')
にしてプロットした図をウィンドウズのSnipping toolでクリップボードにコピーして、パワーポイントに貼って、ノーテーションしたりするわけですが、これが何度も続くと面倒い。ぐぐってみたらwxのバックエンドではツールバーにクリップボードにコピーするアイコンを追加するハックがあった。残念ながらこのパッチはマージされなかったようで、1.4.2でもクリップボードにコピーできない。
で、やっぱり自分で作る。
matplotlibのデフォルトのバックエンドはいまQt4Aggだと思うのでQtでやるにはどうしたら良いのかなとぐぐってみたら、こんな質問があって、もしウィンドウズなら
win32clipboard
つかってみたら?という回答があったのでやってみた。使い方
なんかmatplotlibでプロットしたらこの関数を引数なしでcopy2clipboard()
としてやれば現在フォーカスがある図をBMPとしてクリップボードにコピーします。もしくはfigのインスタンスをfig=figure()のようにして取得してからプロットして、copy2clipboard(fig)
のように使います。エディターにプロット用のスクリプトがあってなんどもプロットする場合、tight_layout()
とかの後にこの関数を置いておくと一手間省けるという感じです。力技ですが、一応つかえます。