💻

なぜPyQtGraphを使うのか

2022/10/13に公開

これは何?

データを扱う際にはPythonを使用することが多く、ほとんどのケースでPyQtGraphを用いて可視化を行っています。
matplotlibやPlotlyなど、さまざまなツールがあるのになぜPyQtGraphを使うのか考えてみました。

結論

まずは結論です。

いろいろと考えた結果、トライアンドエラーが必要な用途を効率良く行うためにPyQtGraph使っているとの認識に至りました。

私自身の使い方によるところが大きいのですが、ぐりぐりしたり、時間軸の表示領域を変更したり、いろいろな角度でデータを眺めるための操作が直感的で、動作もキビキビしていて心地よいからというのが最大の理由です。

論文やプリント用のグラフを作成する際は、Matplotlibやgnuplotを使用します。

これらのことは、WebベースのツールやMatplotlibでも可能です。
一方で、オシロスコープのような更新レートのデータもストレスなく表示できるのは、Python界隈においてはPyQtGraphの他にはないと考えています。

60fpsでてます。

PyQtGraphを使うことのメリデメ

メリットとデメリットについて感じていることは、以下のとおりです。

メリット

・画面に表示することで紙と時間が節約できる
・リアルタイム表示にそこそこ耐えられる
・PySideを使用しているため汎用性が高い

デメリット

・学習コストが高め
・グラフを描くまでのオーバーヘッドが高め

学習コストとオーバーヘッドに関しては、こんな感じのツールを作成してモデルの構築に注力できるよう努めています。

x,yグラフ表示用のフレームワーク。
そのうち、様々なグラフスタイルやcsv、jsonのファイルのプロットもできるようにアップデートする予定です。

地図表示用のフレームワーク。
fo(folium object)を読み出して、地図表示を行います。
保存も編集もでき、お気づきのとおりシンタックス・ハイライトだってできています。

考えたこと

誰のためにどのような状況で使用するか、出力する媒体は何か、といった点を以下のように整理しました。

私自身は、自分のためにパソコン上でデータを可視化してあれこれすることが多いので、操作性の良いPyQtGraphに落ち着いているという結論にいたりました。

もう4年くらい使っていますので、学習コストもずいぶんかけており、やりたいことはおおよそ実現できています。

GitHubで編集を提案

Discussion