WebAggでグラフ描画
Vagrantを使ってMatplotlibを使いたい。こういう場合はJupyterを使ってブラウザ上でグラフをインライン表示すればいいのだが、まとまったコードを書きたかったので、そういう用途でもグラフ表示できないかと考えた。 デフォルトのグラフ出力方法にWebAggというものがあったので、それを使ってみることにした。
環境
- VirtualBox 5.0.24
- Vagrant 1.8.4
- ホスト Windows10
- ゲスト CentOS7.1
- Python 3.5.1
方法
Matplotlibの設定ファイルの確認
インタラクティブモードで確認できる
python >>> import matplotlib >>> matplotlib.matplotlib_fname() /hoge/hage/matplotlibrc
表示方法(backend)を変更
先ほどの関数で表示されたmatplotlibrcをテキストエディタで変更
# 40行付近 backend : WebAgg # 50行付近 webagg.port : 8888 webagg.port_retries : 50 webagg.open_in_browser : True
あとは普通に実行
import numpy as np import matplotlib.pyplot as plt def main(): x = np.arange(-10,10) y = x * x y2 = x * 3 p = plt.plot(x,y) p2 = plt.plot(x,y2) plt.show() if __name__ == '__main__': main()
実行結果
localhost:8888にアクセスすると以下のように表示された。