このページでは

Scatter3DNode QML Type

3D散布図ノード。詳細...

Import Statement: import QtGraphs
Inherits:

GraphsNode

プロパティ

信号

方法

詳細な説明

この型を使用すると、開発者はQt Quick を使用して、散布図ノードを3Dでレンダリングできます。

このタイプを使用するには、Qt Graphs モジュールをインポートする必要があります:

import QtGraphs

その後、qmlファイル内でScatter3DNodeを使用できるようになります:

import QtQuick
import QtGraphs

View3D {
    width: 640
    height: 480

    Scatter3DNode {
        width: parent.width
        height: parent.height
        Scatter3DSeries {
            ItemModelScatterDataProxy {
                itemModel: dataModel
                // Mapping model roles to scatter series item coordinates.
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
            }
        }
    }

    ListModel {
        id: dataModel
        ListElement{ xPos: "2.754"; yPos: "1.455"; zPos: "3.362"; }
        ListElement{ xPos: "3.164"; yPos: "2.022"; zPos: "4.348"; }
        ListElement{ xPos: "4.564"; yPos: "1.865"; zPos: "1.346"; }
        ListElement{ xPos: "1.068"; yPos: "1.224"; zPos: "2.983"; }
        ListElement{ xPos: "2.323"; yPos: "2.502"; zPos: "3.133"; }
    }
}

Scatter3DSeries 、Spline3DSeries 、ScatterDataProxy 、Bars3DNode 、Surface3DNode 、およびQt Graphs の3D用C++クラスも参照してください 。

プロパティのドキュメント

aspectRatio : real

水平面上の最長軸とy軸との間のグラフの縮尺比です。デフォルトは2.0 です。

注: Bars3D には影響しません 。

「horizontalAspectRatio」も参照してください 。

axisX : Value3DAxis

アクティブなX軸。

軸が指定されていない場合、ラベルがなく、範囲が自動的に調整される一時的なデフォルトの軸が作成されます。この一時的な軸は、別の軸が明示的に同じ向きに設定されると破棄されます。

axisY : Value3DAxis

アクティブなY軸。

軸が指定されていない場合、ラベルがなく、範囲が自動的に調整される一時的なデフォルトの軸が作成されます。この一時的な軸は、別の軸が明示的に同じ向きに設定されると破棄されます。

axisZ : Value3DAxis

アクティブなZ軸。

軸が指定されていない場合、ラベルがなく、範囲が自動的に調整される一時的なデフォルトの軸が作成されます。この一時的な軸は、別の軸が明示的に同じ向きに設定されると破棄されます。

customItemList : list<Custom3DItem>

グラフに追加されたCustom3DItem 項目のリスト。グラフは、追加された項目の所有権を取得します。

gridLineType : Graphs3D.GridLineType

グリッド線のタイプが「Graphs3D.GridLineType.Shader 」か「Graphs3D.GridLineType.Geometry 」かを指定します。

この値はすべてのグリッド線に影響します。

「Graphs3D.GridLineType」も参照してください 。

horizontalAspectRatio : real

x軸とz軸のグラフのスケーリング比率です。0.0 の値は、軸の範囲に応じて自動的にスケーリングされることを示します。デフォルトは0.0 です。

注: Bars3DNode には影響しません 。 は、barThickness およびbarSpacing プロパティを介して水平面上のスケーリングを処理します。また、極座標グラフではこのプロパティは無視されます。

関連項目: aspectRatio 、polar 、Bars3DNode::barThickness 、およびBars3DNode::barSpacing 。

labelMargin : real

このプロパティは、軸ラベルの配置における余白を指定します。

負の値を指定するとラベルはプロット領域内に配置され、正の値を指定するとプロット領域の外側に配置されます。値が負の場合、ラベルの自動回転は無効になります。デフォルトは0.1

「QAbstract3DAxis::labelAutoAngle」も参照してください 。

locale : locale

さまざまな数値ラベルの書式設定に使用されるロケールを設定します。デフォルトは「"C" 」ロケールです。

「Value3DAxis::labelFormat」も参照してください 。

margin : real

プロット可能なグラフ領域の端とグラフ背景の端の間に残すスペースとして使用される絶対値。

マージン値が負の場合、マージンは自動的に決定され、系列内の項目のサイズやグラフの種類に応じて変化することがあります。グラフのアスペクト比がデフォルト値から変更されていない場合、この値は y 軸の範囲に対する割合として解釈されます。デフォルトは-1.0 です。

注: 散布図の余白を、自動的に決定された余白よりも小さく設定すると 、グラフの端にある散布図のデータ点がグラフの背景と重なってしまうことがあります。

注: 散布図 およびサーフェス図において 、マージンが軸ラベルのサイズに比べて小さい場合、隣接する軸の端のラベルとの重なりを避けるために、軸の端のラベルの位置が調整されます。

optimizationHint : Graphs3D.OptimizationHint

レンダリングの最適化に、デフォルトモードとレガシーモードのどちらを使用するかを指定します。

デフォルトモードではインスタンス化レンダリングが使用され、ほとんどのシステムにおいて最高のパフォーマンスで全機能を利用できます。スタティックモードはグラフのレンダリングを最適化しており、変更のない大規模なデータセットに最適です。ただし、動的なデータ変更やアイテムの回転を行う場合は処理速度が低下します。 選択操作は最適化されていないため、大規模なデータセットで静的モードを使用することは推奨されません。レガシーモードでは、インスタンス化を行わずにグラフ内のすべてのアイテムを個別にレンダリングします。これは、デフォルトモードが機能しない場合、つまりターゲットシステムがインスタンス化をサポートしていない場合にのみ使用してください。デフォルトはDefault です。

注:一部の環境では 、静的最適化を使用した大規模なグラフがレンダリングされない場合があります。これは、すべてのアイテムが単一のドローコールでレンダリングされるためであり、グラフィックスドライバによって1回のドローコールあたりの最大頂点数が異なるためです。この問題は主に32ビットおよびOpenGL ES2プラットフォームで発生します。 この問題を回避するには、頂点数の少ないアイテムメッシュを選択するか、ポイントメッシュを使用してください。

関連項目:Abstract3DSeries::mesh およびGraphs3D.OptimizationHintも参照してください 。

polar : bool

true の場合、横軸が極座標軸に変更されます。x軸は角度軸となり、z軸は半径軸となります。棒グラフでは極座標モードは使用できません。

デフォルトは `false` です。

「radialLabelOffset」も参照してください 。

queriedGraphPosition : vector3d [read-only]

この読み取り専用プロパティには、Scene3D::graphPositionQuery を使用してクエリされた、各軸に沿ったグラフの位置の最新値が含まれます。これらの値は、[-1, 1] の範囲に正規化されています。クエリされた位置がグラフの境界外にある場合、その値は実際の位置を反映せず、代わりに[-1, 1] の範囲外の未定義の位置となります。クエリが行われるまでは、この値は未定義となります。

特定の画面位置に対応する唯一の正しい3D座標は存在しないため、一貫性を保つために、クエリは常にグラフを囲む見えないボックスの内側を基準に行われます。

注:棒グラフでは 、グラフの底面レベルでのみ位置のクエリが可能であるため、棒グラフの y 値は常に 0 となり、有効なクエリはグラフの底面を含む画面位置でのみ実行できます。

Scene3D::graphPositionQueryも参照してください 。

radialLabelOffset : real

このプロパティは、放射状極座標軸の軸ラベルの正規化された水平オフセットを指定します。値「0.0 」は、ラベルを角度軸の0度のグリッド線の隣に描画することを示します。値「1.0 」は、ラベルをグラフ背景の端にある通常の位置に描画することを示します。このプロパティは、polarプロパティの値が「false 」の場合、無視されます。デフォルトは「1.0 」です。

polarも参照してください 。

selectedElement : Graphs3D.ElementType [read-only]

グラフで選択されている要素。

このプロパティを使用すると、選択されている要素のタイプを照会できます。このタイプは、グラフ内で新たな選択が行われ、「selectedElementChanged 」シグナルが発信されるまで有効です。

このシグナルは、例えば「Axis Handling」の例で示されているように、カスタマイズされた入力処理を実装するために使用できます。

selectedLabelIndex()、selectedAxis()、selectedCustomItemIndex()、selectedCustomItem()、Bars3DNode::selectedSeries 、Scatter3DNode::selectedSeries 、Scene3D::selectionQueryPosition 、およびGraphs3D.ElementTypeも参照してください 。

selectedSeries : Scatter3DSeries [read-only]

選択されたシリーズ、またはNULL。

selectionMode : Graphs3D.SelectionMode

グラフのアクティブな選択モード。graphs3d.selectionflag 列挙型の値のいずれかです。

seriesList : list<Scatter3DSeries> [default]

このプロパティには、グラフのシリーズが格納されます。デフォルトでは、このプロパティには空のリストが含まれています。シリーズを設定するには、addSeries() メソッドを使用するか、グラフの子要素として定義してください。

theme : GraphsTheme

グラフのアクティブなテーマ。

GraphsThemeも参照してください 。

Signal ドキュメント

axisXChanged(ValueAxis3D axis)

このシグナルは、axisX がaxis に変更されたときに発生します。

注: 対応するハンドラは onAxisXChanged です。

axisYChanged(ValueAxis3D axis)

このシグナルは、axisY がaxis に変化したときに発生します。

注: 対応するハンドラは onAxisYChanged です。

axisZChanged(ValueAxis3D axis)

このシグナルは、axisZ がaxis に変更されたときに発生します。

注: 対応するハンドラは onAxisZChanged です。

selectedSeriesChanged(Scatter3DSeries series)

このシグナルは、selectedSeries がseries に変更されたときに発生します。

注: 対応するハンドラは onSelectedSeriesChanged です。

メソッドのドキュメント

qsizetype addCustomItem(Custom3DItem item)

Custom3DItem item をグラフに追加します。追加された項目の所有権はグラフが引き継ぎます。

追加に成功した場合は追加された項目のインデックスを返し、null 項目を追加しようとした場合は -1 を返し、すでに追加されている項目を追加しようとした場合はその項目のインデックスを返します。

removeCustomItems()、removeCustomItem()、およびremoveCustomItemAt()も参照してください 。

void addSeries(Scatter3DSeries series)

series をグラフに追加します。グラフには複数のシリーズを含めることができますが、軸は1組のみです。新しく追加されたシリーズに選択項目が指定されている場合、その項目が強調表示され、既存の選択は解除されます。アクティブな選択が有効なのは、追加されたシリーズのうち1つだけです。

「GraphsNode::hasSeries()」も参照してください 。

void clearSelection()

すべての関連シリーズから選択内容を解除します。

void doPicking(QPoint point)

point のビュー座標を使用してグラフの要素に対してピッキングを実行し、最初にヒットした項目を選択します。デフォルトの入力処理では、onTapped イベントを受信した際にこの処理が行われます。

selectedElementも参照してください 。

void doRayPicking(QVector3D origin, QVector3D direction)

origin から開始し、direction においてグラフの要素に対してピッキングを実行し、最初にヒットした項目を選択します。

selectedElementも参照してください 。

bool hasSeries(Abstract3DSeries series)

series がすでにグラフに追加されているかどうかを返します。

void releaseCustomItem(Custom3DItem item)

item の所有権を取り戻し、グラフからitem を削除します。

注: 同じアイテムをグラフに再度追加する場合 、テクスチャファイルを再設定する必要があります。

「Custom3DItem::textureFile」も参照してください 。

void removeCustomItem(Custom3DItem item)

カスタムitem を削除します。これに割り当てられていたリソースを削除します。

void removeCustomItemAt(vector3d position)

position にあるすべてのカスタムアイテムを削除します。また、それらに割り当てられていたリソースも削除します。

void removeCustomItems()

すべてのカスタムアイテムを削除します。それらに割り当てられていたリソースも削除します。

void removeSeries(Scatter3DSeries series)

グラフからseries を削除してください。

「GraphsNode::hasSeries()」も参照してください 。

Abstract3DAxis selectedAxis()

任意のラベルタイプでselectedElementChanged シグナルを受信した後、選択された軸を取得するために使用できます。選択は、次のselectedElementChanged シグナルが送信されるまで有効です。

選択された軸、またはnullを返します。

「selectedElement」も参照してください 。

Custom3DItem selectedCustomItem()

ElementType.CustomItem 型のselectedElementChanged シグナルを受信した後、選択されたカスタムアイテムを取得するために使用できます。アイテムの所有権はグラフに残ります。選択は、次のselectedElementChanged シグナルが送信されるまで有効です。

選択されたカスタムアイテム、またはnullを返します。

「selectedElement」も参照してください 。

qsizetype selectedCustomItemIndex()

ElementType.CustomItem 型のselectedElementChanged シグナルを受信した後、選択されたカスタム項目のインデックスを照会するために使用できます。選択は、次のselectedElementChanged シグナルが送信されるまで有効です。

選択されたカスタム項目のインデックス、または -1 を返します。

「selectedElement」も参照してください 。

int selectedLabelIndex()

任意のラベルタイプでselectedElementChanged シグナルを受信した後、選択されたラベルのインデックスを照会するために使用できます。選択は、次のselectedElementChanged シグナルが送信されるまで有効です。

選択されたラベルのインデックス、または -1 を返します。

「selectedElement」も参照してください 。

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