CSVデータを用いたグラフの作成
Qt Graphs でCSVファイルのデータを可視化する方法。

「CSVデータを使用したグラフ」のサンプルでは、CSVファイルのデータを2次元棒グラフとして表示する方法を示しています。 このアプリケーションは、サードパーティ製のCSVパーサーを使用してCSVファイルを読み込みます。データは、QAbstractTableModel を継承するカスタムモデルに挿入されます。データがモデルに挿入されると、左端の列には縦方向のヘッダーデータが、最上段の行には横方向のヘッダーデータが含まれます。
選択したサードパーティ製ライブラリはQt リソースシステムについて何も認識していないため、ファイルパスから CSV ファイルをロードすることはできません。そのため、ソースの内容をライブラリに渡す前に、それをロードしておく必要があります。この例の CSV ライブラリは、ファイルパス、std::fstream 、またはstd::stringstream のいずれかの形式でファイルを受け入れます。 CSVファイルはQtリソース内にあるため、ライブラリはそれを読み込む方法を知りません。また、QFile はstd::fstream をサポートしていないため、残された唯一の選択肢はstd::stringstream を使用することです。ファイル全体をQFile::readAll()を介して文字列として読み込み、その文字列をstd::stringstream として開きます。
アプリケーションウィンドウでは、テーブルビューがモデルからのデータを表示します。ユーザーはテーブルビューからデータの一部を選択でき、選択されたデータが棒グラフに表示されます。
棒グラフのシリーズはカテゴリ軸のラベルを変更しないため、シリーズを更新しても軸のラベルは更新されません。この処理は、JavaScript を使用してモデルの最左列からラベル名を抽出することで行われます。抽出されたラベル名は、カテゴリ軸の labels プロパティに設定されます。
function extractBarSetGategories(first, count) {
let categories = [];
const last = first + count;
for (let i = first; i < last; ++i)
categories.push(tv.model.headerData(i, Qt.Horizontal, Qt.DisplayRole) + " medals");
return categories;
}例の動作
以下の手順でサンプルを実行できます:
- Qt Creator
Welcome モードを開き、Examples からこの例を選択します。詳細については、Qt Creator の「チュートリアル:ビルドと実行」を参照してください。
- Qt Extension for Visual Studio Code
Command Palette から「Qt: Open Qt examples 」コマンドを実行し、リストからこの例を選択します。詳細については、Qt Extension for Visual Studio Code の「チュートリアル: ビルドと実行」を参照してください。
「QMLアプリケーション」も参照してください 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.