このページでは

CSVデータを用いたグラフの作成

Qt Graphs でCSVファイルのデータを可視化する方法。

CSVファイルから読み込んだデータを可視化する2D棒グラフ

「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;
    }

例の動作

以下の手順でサンプルを実行できます:

code.qt.io のサンプルプロジェクト

「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.