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 Graphs 모듈을 사용하는 것이 좋습니다. 3D 렌더링의 경우 QtGraphs 은 QtQuick3D를 사용하며, 이는 다시 QtRhi를 사용합니다. QtRhi는 각 플랫폼의 기본 렌더링 백엔드(macOS의 경우 Metal, Windows의 경우 DirectX, Linux의 경우 OpenGL 또는 Vulkan)에 의존합니다. Qt Data Visualization 에서 Qt Graphs 모듈로 마이그레이션하려면 Qt Graphs Qt 데이터 시각화에서 마이그레이션을 참조하십시오.

그래프 유형

Qt Data Visualization 모듈은 다음과 같은 3D 그래프 유형을 제공합니다:

QAbstract3DGraph 클래스는 QWindow 을 서브클래스하고 다양한 그래프 유형을 구현하는 자체 서브클래스에 대한 렌더 루프를 제공합니다: Q3DBars, Q3DScatter, 그리고 Q3DSurface 입니다. 그래프 유형에 따라 데이터가 표시되는 방식이 결정됩니다.

3D 막대 그래프

3D 막대 그래프는 데이터를 카테고리별로 그룹화된 3D 막대로 표시합니다. Q3DBars 클래스는 그래프를 만드는 데 사용되며 QBar3DSeriesQBarDataProxy 클래스는 그래프에 데이터를 설정하고 그리기 모드 및 음영과 같은 그래프의 시각적 속성을 제어하는 데 사용됩니다. QML에서 해당 유형은 Bars3D, Bar3DSeries, BarDataProxy 입니다.

자세한 내용은 How to construct a minimal Q3DBars graph단순 막대 그래프 예제를 참조하세요.

3D 스캐터 그래프

3D 스캐터 그래프는 데이터를 점의 모음으로 표시합니다. Q3DScatter 클래스는 그래프를 만드는 데 사용되며 QScatter3DSeriesQScatterDataProxy 클래스는 그래프에 데이터를 설정하고 그래프의 시각적 속성을 제어하는 데 사용됩니다. QML에서 해당 유형은 Scatter3D, Scatter3DSeries, ScatterDataProxy 입니다.

자세한 내용은 How to construct a minimal Q3DScatter graph단순 분산 그래프 예제를 참조하세요.

3D 서피스 그래프

3D 표면 그래프는 데이터를 3D 표면 플롯으로 표시합니다. Q3DSurface 클래스는 그래프를 만드는 데 사용되며 QSurface3DSeriesQSurfaceDataProxy 클래스는 그래프에 데이터를 설정하고 그래프의 시각적 속성을 제어하는 데 사용됩니다. 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는 녹색을 기본 색상으로 하는 밝은 테마입니다.
  • 기본 색상은 노란색을 기본 색상으로 하는 밝은 테마입니다.
  • Digia는 회색을 기본색으로 하는 밝은 테마입니다.
  • 스톤 모스는 노란색을 기본색으로 하는 중간 어두운 테마입니다.
  • 아미 블루는 파란색을 기본색으로 하는 중간 밝기 테마입니다.
  • 레트로는 갈색을 기본색으로 하는 중간 밝은 테마입니다.
  • 에보니는 흰색을 기본 색상으로 하는 어두운 테마입니다.
  • 이자벨은 노란색을 기본 색상으로 하는 어두운 테마입니다.
  • 사용자 정의는 사용자 정의할 수 있는 기본 테마입니다. 자세한 내용은 Default Theme 을 참조하세요.

사용자 지정 테마는 처음부터 만들 수도 있습니다.

그래프가 여러 데이터 계열의 데이터를 표시하는 경우 각 계열에 대해 일부 설정을 개별적으로 지정할 수 있습니다. 예를 들어 그래프의 여러 레이어에 서로 다른 그라데이션을 지정하여 보다 사실적으로 보이도록 할 수 있습니다. 예제는 표면 그래프 갤러리를 참조하십시오.

3D 장면 사용자 지정

3D 장면은 Q3DScene 클래스 또는 Scene3D QML 유형을 사용하여 구현됩니다. 씬에는 Q3DCamera 클래스 또는 Camera3D 유형을 사용하여 구현된 단일 활성 카메라와 Q3DLight 클래스 또는 Light3D 유형을 사용하여 구현된 단일 활성 광원이 포함됩니다. 광원은 항상 카메라를 기준으로 배치됩니다. 기본적으로 광원 위치는 카메라를 자동으로 따라갑니다.

사전 설정된 위치, 회전 및 줌 레벨을 지정하여 카메라를 사용자 지정할 수 있습니다. 예시는 단순 분산 그래프를 참조하세요.

항목 사용자 지정

Qt Data Visualization 에는 막대, 항목 및 표면에 대한 메시 유형이 미리 정의되어 있습니다. 메쉬 유형에 따라 막대, 항목 또는 서페이스가 그래프에서 어떻게 보이는지가 결정됩니다. 사용자 정의 메쉬는 웨이브프론트 오브젝 지오메트리 정의 파일로 지정할 수 있습니다. 더 많은 다양성을 위해 메시 회전에 쿼터니언을 설정할 수 있습니다.

개별 항목을 커스터마이징하는 것 외에도 QCustom3DItem 클래스 또는 Custom3DItem QML 유형을 사용하여 그래프에 커스텀 항목을 추가할 수 있습니다. 이 항목에는 사용자 지정 메쉬, 위치, 크기 조정, 회전 및 선택적 텍스처가 있습니다.

QCustom3DVolume 클래스 및 Custom3DVolume QML 유형은 그래프에 추가할 볼륨 렌더링된 개체를 만드는 데 사용할 수 있습니다. 볼륨 렌더링 오브젝트는 3D 텍스처가 있는 상자입니다. 볼륨에는 볼륨의 각 주축을 따라 하나씩 세 개의 슬라이스 평면이 지원됩니다.

QCustom3DLabel 클래스와 Custom3DLabel QML 유형은 지정된 텍스트, 글꼴, 위치, 크기 조정 및 회전으로 사용자 지정 레이블을 구현합니다. 레이블 색상, 테두리 및 배경은 활성 테마에 의해 결정됩니다.

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