Pythonでグラフ作成と言えば、Matplotlibが有名です。
では、PyQtGraphがなぜ必要となるのでしょうか?
それは、PyQtGraphの処理速度に答えがあります。
簡単に言うと、PyQtGraphはMatplotlibよりも処理が速いのです。
よって、高速なグラフ描画にはPyQtGraphが必要になります。
本記事の内容
- PyQtGraphとは?
- PyQtGraphのシステム要件
- PyQtGraphのインストール
- PyQtGraphの動作確認
それでは、上記に沿って解説していきます。
PyQtGraphとは?
PyQtGraphが、Matplotlibよりも高速だと書きました。
では、なぜ高速なのでしょうか?
それは、Qtに秘密があります。
PyQtGraphの名前の中にも「Qt」とありますよね。
ここで念のため、Qtについても説明しておきます。
Qtとは、C++のクロスプラットフォームフレームワークのことを言います。
C++がベースになっているため、処理が高速です。
また、PyQtGraphは数値計算をNumpyに依存しています。
これもPyQtGraphが高速である理由のようです。
以上、PyQtGraphについての説明でした。
PyQtGraphはQtベースであるから、処理が速いと覚えておけば十分でしょう。
次に、PyQtGraphが動作する環境について確認します。
PyQtGraphのシステム要件
最初に公式サイトに関しての注意喚起です。
PyQtGraph公式サイト
http://www.pyqtgraph.org/
上記が公式サイトです。
しかし、公式サイトは更新されていません。
SSL未対応の状況から、そういうことなのでしょう。
そのため、GitHub上のページを参考にします。
https://github.com/pyqtgraph/pyqtgraph
現時点での最新バージョンは、0.11.1となります。
このバージョンは、2021年12月20日に公開されています。
PyQtGraphは、クロスプラットフォーム対応です。
そのため、基本的には以下のOSのどこでも動きます。
- Windows
- macOS
- Linux
ただ、依存関係について注意が必要です。
以下が、必須となります。
- Python 3.7+
- Qt 5.12-6.0
- PyQt5, PyQt6, PySide2 or PySide6
- numpy 1.17+
オプションに関しては、適宜必要な都度対応すればいいでしょう。
上記の必須だけでも下記で説明します。
Python 3.7+
Pythonのバージョンを新しくしましょう。
それしか言うことはありません。
今回は、以下のバージョンで試していきます。
>python -V Python 3.8.6
Qt 5.12-6.0
Qtは、インストール済み前提です。
基本的に、Qt 5系のはず。
Qt6をわざわざ自分でインストールしていない限りは。
Qt6は、2020年12月に公開されています。
https://www.qt.io/jp/blog/qt-6.0-released
Linuxなら、そもそもQtが未インストールかもしれません。
PyQt5, PyQt6, PySide2 or PySide6
これらは、QtのPythonバインディングと表現できます。
そして、以下のどれか一つだけでもインストールされていれば、OKです。
- PyQt5
- PyQt6
- PySide2
- PySide6
ただし、注意点があります。
Pythonのバージョンと、それぞれの動作確認の結果表をご覧ください。
上記の表を満たす環境を用意する必要があります。
今回は、Python 3.8であるのでPyQt5-5.15をインストールします。
PyQt5のインストールに関しては、次の記事を参考にしてください。
numpy 1.17+
インストール済みなら、特になにもしなくてもよいでしょう。
Numpyを未インストールなら、ここで何もする必要はありません。
PyQtGraphのインストール時に、最新のNumpyが自動的にインストールされます。
まとめ
PyQtGraphのシステム要件でのポイントは、主に2点です。
- Python 3.7以降
- Pythonのバージョンに対応したQtのPythonバインディング
上記の2点が準備できたら、PyQtGraphのインストールを行っていきます。
PyQtGraphのインストール
最初に、現状のインストール済みパッケージを確認しておきます。
PyQt5のみをインストールした状況です。
>pip list Package Version ---------- ------- pip 21.0.1 PyQt5 5.15.2 PyQt5-sip 12.8.1 setuptools 53.0.0
次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip
では、PyQtGraphのインストールです。
PyQtGraphのインストールは、以下のコマンドとなります。
pip install pyqtgraph
インストールは、すぐに終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ---------- ------- numpy 1.20.1 pip 21.0.1 PyQt5 5.15.2 PyQt5-sip 12.8.1 pyqtgraph 0.11.1 setuptools 53.0.0
インストール前と比較すると、以下の二つが追加されています。
numpy 1.20.1 pyqtgraph 0.11.1
PyQtGraphは、最新バージョンがインストールされていますね。
なお、Numpyに関しては、事前にインストール済みでも問題はありません。
最後に、PyQtGraphの動作確認を行いましょう。
PyQtGraphの動作確認
PyQtGraphが正常に動作するかどうかは、以下のコードで試せます。
import pyqtgraph.examples pyqtgraph.examples.run()
上記を実行すると、以下の画面が表示されます。
上の画面が確認できれば、PyQtGraphの動作確認は完了と言えます。
でも、折角なのでグラフを表示(保存)するコードも載せておきます。
import pyqtgraph as pg import pyqtgraph.exporters # generate something to export plt = pg.plot([1,5,2,4,3]) # create an exporter instance, as an argument give it # the item you wish to export exporter = pg.exporters.ImageExporter(plt.plotItem) # set export parameters if needed exporter.parameters()['width'] = 100 # (note this also affects height parameter) # save to file exporter.export('fileName.png')
上記を実行すると、以下の画像ファイルが作成されます。
なんてことはないグラフです。
そのため、PyQtGraphの効果を確認するまではできません。
ただ、PyQtGraphを利用してグラフを描画するまでは確認できました。
これで、グラフ作成の際に選択肢が増えました。
PyQtGraphとMatplotlibのどちらかを選ぶことができます。