Python で GUI アプリを作成するときに Qt の Python 用バインディングである PySide (Qt for Python) を使用することが多くなりました。散布図などのチャート作成には、もっぱら matplotlib を使っていますが、他の選択肢も検討しようと、QtCharts というチャート作成用ライブラリの使い方をまとめました。
当初、PySide 用の QtCharts のサンプルが見つからず、C++ 用のサンプル [1] を PySide 用に書き直していましたが、よく探してみると PySide 用サンプルもありました [2]。ここでは、勉強がてら C++ 用のサンプルを書き直したものを紹介していきます。
本記事では、下記の OS 環境を使用しています。
Fedora 34 Workstation | x86_64 | |
- Python 3.9.6 | ||
- PySide6 6.1.2 (venv) | ||
- IDE: PyCharm 2021.1.3 (Community Edition) |
LineBarChart
LineBarChart は、折れ線グラフと棒グラフを合わせて表示するクラスです。
qtcharts_linebarchart.py
実行例を下記に示しました。
qtcharts_linebarchart.py の実行例
barseries = QBarSeries(), lineseries = QLineSeries() で棒グラフ、折れ線グラフのデータ列を準備し、X 軸 (axisX) および Y 軸 (axisY) にアタッチするだけです。
categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'] axisX = QBarCategoryAxis() axisX.append(categories) chart.addAxis(axisX, Qt.AlignBottom) lineseries.attachAxis(axisX) barseries.attachAxis(axisX) axisX.setRange('Jan', 'Jun');
axisY = QValueAxis() chart.addAxis(axisY, Qt.AlignLeft) lineseries.attachAxis(axisY) barseries.attachAxis(axisY) axisY.setRange(0, 20)
参考サイト
にほんブログ村
0 件のコメント:
コメントを投稿