CygwinのPython(2.7)でmatplotlibを使う
Cygwinでmatplotlibを使えるようになるまでに、いくつかハマりどころがあったので、過程を記しておきます。
環境
諸事情により、Cygwin 32bit + Cygwin版Python2.7 + matplotlib 2.1.1 です。
手順
Cygwin自体の導入は省略します。
1. Pythonとpipのインストール
Python本体の他、python-develパッケージも必要です。
pipは、python-pipというパッケージに入っています。
2. matplotlibのインストール
上記でインストールしたpipは、python2系なら「pip2」というコマンド名で呼び出します。
$ pip2 install matplotlib
途中でエラーメッセージが出たら
"gcc: error: spawn: No such file or directory" → gcc-g++が入っていないのでインストールします。
"Perhaps you need to install ..." → 必要なパッケージをインストールして再試行します。
3. importとバージョンの確認
インストール完了したら、Pythonを対話モードで起動して、matplotlibのバージョンを確認してみます。
$ python
>>> import matplotlib
>>> matplotlib.__version__
'2.1.1'
4. グラフ描画の準備
X11カテゴリのパッケージを一通りインストールしておきます。
Xサーバを起動して、ディスプレイを指定します。
$ run xwin -multiwindow -noclipboard
$ export DISPLAY=:0.0
5. グラフ描画のテスト
何の変哲もないグラフを出力してみます。
$ python
>>> import matplotlib.pyplot as plt
>>> plt.plot(range(10))
[<matplotlib.lines.Line2D object at 0xfd8fae2c>]
>>> plt.show()
6. (※出力されない場合) バックエンドの確認・変更
matplotlibのバックエンドを確認します。
>>> import matplotlib
>>> matplotlib.get_backend()
u'agg'
'agg'等、GUI非対応の設定になっていたら変更します。
使用可能なバックエンドと、必要なライブラリについては、公式ドキュメントの表を参照ください。
matplotlib Usage - What is a backend?
ここでは、Qt4Aggを使うように変更してみます。
qt4パッケージをインストール
$ apt-cyg install python-pyqt4
matplotlibrcファイルの場所を確認する
>>> matplotlib.matplotlib_fname()
u'/usr/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc'
matplotlibrcを開いて、backendを書き換えて保存する
backend : Qt4Agg
さいごに
バックエンドの問題は、エラーメッセージが出るわけでもないので、結構手こずりました。
ちなみに Cygwin 64bit + Windows版AnacondaのPython3.6 + matplotlib 2.1.1 という環境も併用していますが、
そちらは最初からpipも入っているし、バックエンドの問題もなかったです。
ただ余談ですが、Windows版のPythonをCygwinから対話モードで起動するときは、python -i
と明示的にオプションをつけないといけないのですね。
以上、個人的につまづいた箇所を中心に、Cygwin+matplotlib導入手順でした。
ご指摘等あれば、よろしくお願いします。
Author And Source
この問題について(CygwinのPython(2.7)でmatplotlibを使う), 我々は、より多くの情報をここで見つけました https://qiita.com/gricoRodriguez/items/5ff790736efc15dafa22著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .