Simple Scatter Graph

// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtGraphs

Item {
    property int shadowQuality: AbstractGraph3D.ShadowQuality.High
    property int cameraPreset: AbstractGraph3D.CameraPreset.Front
    property alias meshSmooth: scatterSeries.meshSmooth
    property alias theme: scatterGraph.theme

    Scatter3D {
        id: scatterGraph
        anchors.fill: parent

        theme: themeQt
        shadowQuality: parent.shadowQuality
        cameraPreset: parent.cameraPreset

        axisX.segmentCount: 3
        axisX.subSegmentCount: 2
        axisX.labelFormat: "%.2f"
        axisZ.segmentCount: 2
        axisZ.subSegmentCount: 2
        axisZ.labelFormat: "%.2f"
        axisY.segmentCount: 2
        axisY.subSegmentCount: 2
        axisY.labelFormat: "%.2f"

        Scatter3DSeries {
            id: scatterSeries
            itemLabelFormat: "Series 1: X:@xLabel Y:@yLabel Z:@zLabel"

            ItemModelScatterDataProxy {
                itemModel: seriesData.model
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
            }
        }
        Scatter3DSeries {
            id: scatterSeriesTwo
            itemLabelFormat: "Series 2: X:@xLabel Y:@yLabel Z:@zLabel"
            itemSize: 0.05
            mesh: Abstract3DSeries.Mesh.Cube
            ItemModelScatterDataProxy {
                itemModel: seriesData.modelTwo
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
            }
        }
        Scatter3DSeries {
            id: scatterSeriesThree
            itemLabelFormat: "Series 3: X:@xLabel Y:@yLabel Z:@zLabel"
            itemSize: 0.1
            mesh: Abstract3DSeries.Mesh.Minimal

            ItemModelScatterDataProxy {
                itemModel: seriesData.modelThree
                xPosRole: "xPos"
                yPosRole: "yPos"
                zPosRole: "zPos"
            }
        }
    }
}