Qt Data Visualization 概要
Qt Data Visualization モジュールは、学術研究や医療など、高度な分析が求められる業界向けに、応答性が良く、複雑かつ動的な3D可視化を迅速に開発する手段を提供します。Qt 3D データ可視化機能では、3Dの棒グラフ、散布図、およびサーフェス可視化を提供します。ユーザー操作とリアルタイムの3D描画可視化を組み合わせることで、空間を効果的に活用したユーザーインターフェースを構築できます。3Dと2Dの表示を切り替えることで、データ可視化において3Dの真価を最大限に引き出すことが可能です。
グラフのルックアンドフィールは、定義済みのテーマを使用するか、新しいテーマを定義することでカスタマイズできます。さらに、カメラの設定を指定してシーンをカスタマイズしたり、定義済みまたはユーザー定義のメッシュを使用して個々のアイテムをカスタマイズしたりすることも可能です。
Qt Data Visualization Qtアイテムモデルやハイトマップからのデータを可視化するために使用できる、既製のデータプロキシを提供しています。各グラフタイプには、その可視化に適した形式のデータを受け入れる基本プロキシタイプがあります。詳細については、『Qt Data Visualization 』の「データ処理」を参照してください。
エンドユーザーは、グラフの回転、データの拡大・縮小、項目の選択、読みやすさを高めるための3Dデータの2Dスライスの表示など、さまざまな方法でグラフに表示されたデータと対話できます。詳細については、「Qt Data Visualization データとの対話」を参照してください。
注: Qt Data Visualization モジュールは Qt 6.10以降、非推奨となっています。新規プロジェクトでは、代わりに Qt Graphs モジュールを使用してください。Qt Graphs は、各プラットフォームのネイティブレンダリングバックエンド(macOSではMetal、WindowsではDirectX、LinuxではOpenGLまたはVulkan)を使用して、2Dおよび3Dグラフの両方でハードウェアアクセラレーションによるレンダリングを実現します。Qt Data Visualization からQt Graphs モジュールへ移行するには、「Qt Graphs Qt DataVisualizationからの移行」またはQt Academyのコース「 Qt Graphs への移行」を参照してください。
グラフの種類
Qt Data Visualization モジュールでは、以下の3Dグラフタイプを提供しています:
QAbstract3DGraphクラスはQWindow を継承しており、さまざまなグラフタイプ(Q3DBars、Q3DScatter、Q3DSurface)を実装する自身のサブクラス向けにレンダリングループを提供します。グラフタイプによって、データの表示方法が決定されます。
3D棒グラフ
3D棒グラフは、データをカテゴリごとにグループ化された3Dの棒として表示します。Q3DBarsクラスはグラフの作成に使用され、QBar3DSeriesクラスおよびQBarDataProxyクラスは、グラフへのデータ設定や、描画モードやシェーディングなどのグラフの視覚的プロパティの制御に使用されます。 QML では、これに対応する型として Bars3D、Bar3DSeries、および BarDataProxy があります。

詳細については、How to construct a minimal Q3DBars graph および「Simple Bar Graph」のサンプルを参照してください。
3D 散布図
3D 散布図は、データを点の集合として表示します。Q3DScatter クラスはグラフの作成に使用され、QScatter3DSeries および QScatterDataProxy クラスは、グラフへのデータの設定や、グラフの視覚的なプロパティの制御に使用されます。 QML では、これに対応する型は Scatter3D、Scatter3DSeries、および ScatterDataProxy です。

詳細については、「How to construct a minimal Q3DScatter graph 」および「Simple Scatter Graph」のサンプルを参照してください。
3D サーフェスグラフ
3D サーフェスグラフは、データを 3D サーフェスプロットとして表示します。 Q3DSurface クラスはグラフの作成に使用され、QSurface3DSeries および QSurfaceDataProxy クラスは、グラフへのデータ設定や、グラフの視覚的プロパティの制御に使用されます。QML では、対応する型は Surface3D、Surface3DSeries、および SurfaceDataProxy です。

詳細については、「How to construct a minimal Q3DSurface graph 」、「Graph Gallery」、および「Surface Graph Gallery」の例を参照してください。
データのレンダリングにおける OpenGL の使用
データのレンダリングには、OpenGL 2.1 以降の使用を推奨します。OpenGL ES2(Windows 上の Angle ビルドを含む)を使用する場合、以下の機能はサポートされません:
- 影
- アンチエイリアシング
- サーフェスのフラットシェーディング
- ボリュームオブジェクト(3Dテクスチャを使用するため)
ソフトウェアレンダラー(QCoreApplication::setAttribute (Qt::AA_UseSoftwareOpenGL )を使用する場合)では、OpenGL ES2のエミュレーションのみが利用可能です。
レンダリングモードの選択
QML では、AbstractGraph3D.RenderingMode プロパティを設定することで、グラフをウィンドウの背景に直接レンダリングするか、あるいはオフスクリーンサーフェスにレンダリングして、通常の QML アイテムのレンダリング中に描画するかを決定できます。
背景レンダリングモードは、間接レンダリングモードよりもわずかにパフォーマンスが向上しますが、その代償としてQMLの標準的な挙動とは異なる動作になります。例えば、グラフはQMLアイテムのZ順序に従わず、部分的な透明化もできません。したがって、レンダリングモードの変更は、パフォーマンスと品質のトレードオフの問題となります。
Qt Quick はデータレンダリングに専用のシーングラフを使用するため、データ可視化には最適な選択肢となります。
3D 軸
Qt Data Visualization は、以下の軸タイプをサポートしています:
- 値軸
- カテゴリ軸
軸は、線またはグリッドを表示するように設定できます。どちらの軸タイプも、QAbstract3DAxis クラスまたは AbstractAxis3D QML 型の特殊化です。
値軸には、値の範囲と、その範囲を分割するためのセグメント数およびサブセグメント数を指定できます。各セグメントの間にはラベルが描画されます。各セグメントと各サブセグメントの間にはグリッド線が描画されます。値軸は、QValue3DAxis クラスまたは ValueAxis3D QML タイプを使用して実装されます。
カテゴリ軸には、名前付きの範囲と調整可能な範囲幅があります。軸の範囲によって定義されたデータウィンドウのサイズに基づいて、等幅のカテゴリに分割されます。ラベルが指定されている場合は、カテゴリの位置に描画されます。グリッド線が可視設定されている場合は、カテゴリ間に描画されます。 カテゴリ軸は、QCategory3DAxis クラスまたは CategoryAxis3D QML タイプを使用して実装されます。
グラフに対して軸が明示的に設定されていない場合、ラベルのない一時的なデフォルトの軸が作成されます。これらのデフォルトの軸は軸アクセサを介して変更できますが、特定の向きに対して軸が明示的に設定されると、その向きのデフォルトの軸は破棄されます。
すべてのグラフタイプは、複数の系列を同時に表示することをサポートしています。すべての系列が同じ行数および列数である必要はありません。行および列のラベルは、行軸および列軸に対して明示的に定義されていない限り、最初に追加された系列から取得されます。
軸フォーマッタを使用すると、値軸の目盛り線やラベルをカスタマイズできます。 QValue3DAxisFormatter クラスおよび ValueAxis3DFormatter QML タイプは、線形値の 3D 軸に対する書式設定ルールを提供します。QLogValue3DAxisFormatter クラスおよび LogValueAxis3DFormatter QML タイプは、対数値の 3D 軸に対する書式設定ルールを提供します。
polar プロパティを設定することで、サーフェスグラフや散布図で極座標の水平軸を使用できます。
3D テーマ
テーマとは、グラフのすべての視覚要素(色、フォント、要素の表示/非表示、光の強さや周囲の光など)に適用される、UI スタイル関連の設定の組み込みコレクションです。
Qt Charts には、カスタムテーマの基礎として使用できる、以下の定義済みテーマが含まれています。
- Qt は、緑を基調色とする明るいテーマです。
- 「Primary colors」は、黄色を基調色とする明るいテーマです。
- 「Digia」は、グレーを基調色とする明るいテーマです。
- Stone mossは、黄色を基調色とする中程度の暗さのテーマです。
- Army blueは、青を基調色とした中程度の明るさのテーマです。
- Retroは、茶色を基調色とした中程度の明るさのテーマです。
- 「Ebony」は、白を基調色としたダークテーマです。
- Isabelleは、黄色を基調色とするダークテーマです。
- 「ユーザー定義」は、カスタマイズを前提としたデフォルトのテーマです。詳細については、Default Theme をご覧ください。
カスタム テーマをゼロから作成することもできます。
グラフに複数のデータ系列のデータが表示されている場合、各系列ごとに個別の設定を指定することができます。たとえば、グラフの各レイヤーに異なるグラデーションを指定して、よりリアルな外観に仕上げることができます。例については、「サーフェスグラフギャラリー」を参照してください。
3D シーンのカスタマイズ
3D シーンは、Q3DScene クラスまたは Scene3D QML タイプを使用して実装されます。 シーンには、Q3DCamera クラスまたは Camera3D タイプを使用して実装される 1 つのアクティブなカメラと、Q3DLight クラスまたは Light3D タイプを使用して実装される 1 つのアクティブな光源が含まれます。光源は常にカメラを基準として配置されます。デフォルトでは、光源の位置はカメラに自動的に追従します。
カメラは、あらかじめ設定された位置、回転、ズームレベルを指定することでカスタマイズできます。例については、「Simple Scatter Graph」を参照してください。
項目のカスタマイズ
Qt Data Visualization には、バー、アイテム、およびサーフェス用の定義済みメッシュタイプが用意されています。メッシュタイプによって、グラフ上のバー、アイテム、またはサーフェスの外観が決まります。ユーザー定義のメッシュは、Wavefront OBJ ジオメトリ定義ファイルとして指定できます。さらにバリエーションを増やすために、メッシュの回転にクォータニオンを設定することも可能です。
個々のアイテムをカスタマイズするほか、QCustom3DItem クラスまたは Custom3DItem QML タイプを使用して、グラフにカスタムアイテムを追加することもできます。これらのアイテムには、カスタムメッシュ、位置、スケール、回転、およびオプションのテクスチャが設定されています。
QCustom3DVolume クラスおよび Custom3DVolume QML タイプを使用すると、グラフに追加するボリュームレンダリングオブジェクトを作成できます。ボリュームレンダリングオブジェクトは、3D テクスチャを持つボックスです。ボリュームには 3 つのスライス平面がサポートされており、それぞれボリュームの各主軸に沿っています。
QCustom3DLabel クラスおよび Custom3DLabel 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.