2025-05-20

Matplotlib と QChart

Matplotlib は、Python と NumPy のためのプロットライブラリです。Tkinter、wxPython、Qt、GTK のような汎用 GUI ツールキットを使ったアプリケーションにプロットを埋め込むためのオブジェクト指向 API を提供しています。

Wikipedia より引用、翻訳

最近は、何かにつけて Google Gemini(以下、単に Gemini と呼びます)に相談することが多くなり、Python などのコーディングについても相談しています。便利になったものです。

リアルタイムでデータを取得してトレンドチャートにするニーズに対して、PySide6 の QChart で実装しようとして Gemini にあれこれ相談しています。

Matplotlib についても同じようなリアルタイムなトレンドチャートができるか Gemini に聞いてみたところ、あっさりサンプルを示してくれました。確認したところ、厳密にはデータ追加の度に再描画をしているとのことですが、それでもこのやり方を探していたんだと(Matplotlib でリアルタイムにデータ点を追加することに苦戦していただけに)自分の調査力の拙さにがっかりしてしまいました。

PySide6 に埋め込んだ Matplotlib によるリアルタイムなトレンドチャート (by Google Gemini)

Gemini が出してくれたコードは、本ブログ記事の下の方 qt_matplotlib_rt.py に示しました。

Matplotlib でもできるのであれば、現在 PySide6 の QChart で実装しようとしているトレンドチャートを Matplotlib でやり直そうか…。結構な量のデータをリアルタイムで扱うことから、リソース消費やパフォーマンスを追求する必要があったので、Gemini に頼んで比較してもらいました。

以下が Gemini が出力してくれた「まとめ」の表に色など少し修飾を加えたものです。

PySide6 QChart と 埋め込んだ Matplotlib の比較 (by Google Gemini)
特徴 PySide6 QChart 埋め込んだ Matplotlib
処理速度 高速 (リアルタイムデータ更新に最適化) 比較的低速 (再描画のオーバーヘッド)
リソース効率 有利 (軽量、メモリ使用量少) 不利 (多機能、メモリ使用量多)
リアルタイム性 高い 比較的低い
汎用性 グラフの種類は Matplotlib より限定的 非常に高い (多様なグラフに対応)
カスタマイズ性 ある程度可能 非常に高い (細部までカスタマイズ可能)
統合性 Qt アプリケーションとの親和性が高い 外部ライブラリの埋め込み

Jupyter Lab 上でのチャートは Matplotlib が便利で、多少リソースを食うからと言っても変える気はありませんが、GUI アプリの特定用途向けのチャートでは GUI ライブラリの機能(この場合は QChart)を使った方が良さそうです。

qt_matplotlib_rt.py (by Google Gemini)

参考サイト

  1. Google Gemini

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加