Qt Data Visualization 개요
Qt Data Visualization 모듈은 학술 연구 및 의료와 같이 분석적 요구가 높은 산업 분야를 위해 반응이 빠르고 복잡하며 동적인 3D 시각화를 개발할 수 있는 방법을 제공합니다. Qt 3D 데이터 시각화 기능은 3D 막대, 산점도 및 표면 시각화를 제공합니다. 사용자 상호작용과 실시간 3D 렌더링 시각화를 결합함으로써 공간을 효과적으로 활용하는 사용자 인터페이스를 구축할 수 있습니다. 3D와 2D 표시 방식을 전환함으로써 데이터 시각화에서 3D의 가치를 진정으로 활용할 수 있습니다.
그래프의 모양과 느낌은 미리 정의된 테마를 사용하거나 새로운 테마를 정의하여 사용자 정의할 수 있습니다. 또한 카메라 설정을 지정하여 장면을 사용자 정의할 수 있으며, 미리 정의된 메쉬나 사용자 정의 메쉬를 사용하여 개별 항목을 사용자 정의할 수 있습니다.
Qt Data Visualization Qt 항목 모델 및 높이 맵의 데이터를 시각화하는 데 사용할 수 있는 기성 데이터 프록시를 제공합니다. 각 그래프 유형에는 해당 시각화에 적합한 형식의 데이터를 수용하는 기본 프록시 유형이 있습니다. 자세한 내용은 Qt Data Visualization Data Handling을 참조하십시오.
최종 사용자는 그래프 회전, 데이터 확대/축소, 항목 선택, 가독성 향상을 위한 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 및 간단한 막대 그래프 예제를 참조하십시오.
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, 그래프 갤러리 및 표면 그래프 갤러리 예제를 참조하십시오.
데이터 렌더링을 위한 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 유형을 사용하여 구현된 하나의 활성 카메라와, Q3DLight 클래스나 Light3D 유형을 사용하여 구현된 하나의 활성 광원을 포함합니다. 광원은 항상 카메라를 기준으로 위치가 결정됩니다. 기본적으로 광원의 위치는 카메라를 자동으로 따라갑니다.
카메라는 사전 설정된 위치, 회전 및 줌 레벨을 지정하여 사용자 정의할 수 있습니다. 예제는 '간단한 산점도'를 참조하십시오.
항목 사용자 지정
Qt Data Visualization 에는 막대, 항목 및 표면을 위한 미리 정의된 메쉬 유형이 있습니다. 메쉬 유형은 그래프에서 막대, 항목 또는 표면이 어떻게 표시될지를 결정합니다. 사용자 정의 메쉬는 Wavefront OBJ 지오메트리 정의 파일로 지정할 수 있습니다. 더 다양한 표현을 위해 메쉬 회전에 쿼터니언을 설정할 수 있습니다.
개별 항목을 사용자 정의하는 것 외에도, QCustom3DItem 클래스나 Custom3DItem QML 유형을 사용하여 그래프에 사용자 정의 항목을 추가할 수 있습니다. 이러한 항목은 사용자 정의 메쉬, 위치, 크기 조정, 회전 및 선택적 텍스처를 갖습니다.
QCustom3DVolume 클래스와 Custom3DVolume QML 유형을 사용하여 그래프에 추가할 볼륨 렌더링 객체를 생성할 수 있습니다. 볼륨 렌더링 객체는 3D 텍스처가 적용된 상자 형태입니다. 볼륨에 대해서는 세 개의 단면 평면이 지원되며, 각 평면은 볼륨의 주요 축을 따라 하나씩 위치합니다.
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.