En esta página

Qt Data Visualization Visión general

El módulo Qt Data Visualization proporciona una forma de desarrollar visualizaciones 3D complejas y dinámicas de respuesta rápida para sectores de gran exigencia analítica como la investigación académica y la medicina. Qt 3D Visualización de datos proporciona barras 3D, dispersión y visualizaciones de superficie. La combinación de la interacción del usuario y las visualizaciones de dibujos 3D en tiempo real permite crear interfaces de usuario que utilizan el espacio de forma eficaz. El cambio entre la presentación 3D y 2D permite utilizar realmente el valor del 3D en la visualización de datos.

El aspecto de los gráficos puede personalizarse utilizando los temas predefinidos o definiendo otros nuevos. Además, las escenas pueden personalizarse especificando los ajustes de la cámara, y los elementos individuales pueden personalizarse utilizando mallas predefinidas o definidas por el usuario.

Qt Data Visualization ofrece proxies de datos listos para usar que pueden utilizarse para visualizar datos de modelos de elementos Qt y mapas de alturas. Cada tipo de gráfico tiene un tipo de proxy básico, que acepta datos en un formato adecuado para esa visualización. Para obtener más información, consulte Qt Data Visualization Data Handling.

Los usuarios finales pueden interactuar con los datos presentados por los gráficos de varias maneras, incluyendo la rotación de gráficos, el zoom dentro y fuera de los datos, la selección de elementos y la visualización de cortes 2D de los datos 3D para una mayor legibilidad. Para más información, consulte Qt Data Visualization Interacción con los datos.

Nota: El módulo Qt Data Visualization está obsoleto desde Qt 6.10. Para nuevos proyectos, utilice el módulo Qt GraphsQt Graphs utiliza el backend de renderizado nativo de cada plataforma (Metal en macOS, DirectX en Windows, OpenGL o Vulkan en Linux) para conseguir un renderizado acelerado por hardware tanto para gráficos 2D como 3D. Para migrar de Qt Data Visualization al módulo Qt Graphs, consulte Qt Graphs Migration from Qt DataVisualization o el curso de Qt Academy Migrating to Qt Graphs.

Tipos de gráficos

El módulo Qt Data Visualization proporciona los siguientes tipos de gráficos 3D:

La clase QAbstract3DGraph subclasea a QWindow y proporciona un bucle de renderizado para sus propias subclases que implementan los diferentes tipos de gráficos: Q3DBars Q3DScatter y Q3DSurface. El tipo de gráfico determina cómo se presentan los datos.

Gráficos de barras 3D

Los gráficos de barras 3D presentan los datos como barras 3D agrupadas por categorías. La clase Q3DBars se utiliza para crear un gráfico y las clases QBar3DSeries y QBarDataProxy se utilizan para asignar datos al gráfico, así como para controlar las propiedades visuales del gráfico, como el modo de dibujo y el sombreado. En QML, las clases correspondientes son Bars3D, Bar3DSeries, y BarDataProxy.

Para más información, consulte How to construct a minimal Q3DBars graph, y Ejemplos de gráficos de barras simples.

Gráficos de dispersión 3D

Los gráficos de dispersión 3D presentan los datos como una colección de puntos. La clase Q3DScatter se utiliza para crear un gráfico y las clases QScatter3DSeries y QScatterDataProxy se utilizan para asignar datos al gráfico, así como para controlar las propiedades visuales del gráfico. En QML, las clases correspondientes son Scatter3D, Scatter3DSeries, y ScatterDataProxy.

Para más información, consulte How to construct a minimal Q3DScatter graph, y Ejemplos de gráficos de dispersión simples.

Gráficos de superficie 3D

Los gráficos de superficie 3D presentan los datos como gráficos de superficie 3D. La clase Q3DSurface se utiliza para crear un gráfico y las clases QSurface3DSeries y QSurfaceDataProxy se utilizan para establecer datos en el gráfico, así como para controlar las propiedades visuales del gráfico. En QML, las clases correspondientes son Surface3D, Surface3DSeries, y SurfaceDataProxy.

Para obtener más información, consulte los ejemplos How to construct a minimal Q3DSurface graph, Graph Gallery y Surface Graph Gallery.

Uso de OpenGL para el renderizado de datos

Se recomienda utilizar OpenGL 2.1 o posterior para el renderizado de datos. Si se utiliza OpenGL ES2 (incluyendo Angle builds en Windows), las siguientes características no son compatibles:

  • Sombras
  • Antialiasing
  • Sombreado plano de superficies
  • Objetos volumétricos, porque utilizan texturas 3D.

Sólo está disponible la emulación OpenGL ES2 para el renderizador por software (es decir, cuando se utiliza QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL)).

Selección del modo de renderizado

En QML, puede establecer la propiedad AbstractGraph3D.RenderingMode para determinar si el gráfico se renderizará directamente en el fondo de la ventana o en una superficie fuera de la pantalla que luego se dibujará durante la renderización normal de elementos QML.

Los modos de renderizado de fondo ofrecen un rendimiento ligeramente superior al modo de renderizado indirecto, a costa de un comportamiento QML no estándar. Por ejemplo, los gráficos no obedecen el orden z de los elementos QML y no pueden ser parcialmente transparentes. Por lo tanto, cambiar el modo de renderizado es una cuestión de rendimiento frente a calidad.

Qt Quick utiliza un scenegraph dedicado para el renderizado de datos y, por lo tanto, es la mejor opción para la visualización de datos.

Ejes 3D

Qt Data Visualization soporta los siguientes tipos de ejes:

  • Eje de valor
  • Eje de categoría

Un eje puede configurarse para mostrar una línea o una cuadrícula. Ambos tipos de eje son especializaciones de la clase QAbstract3DAxis o del tipo AbstractAxis3D QML.

A un eje de valor se le puede dar un rango de valores y un número de segmentos y subsegmentos en los que dividir el rango. Se dibujan etiquetas entre cada segmento. Se trazan líneas de cuadrícula entre cada segmento y cada subsegmento. El eje de valor se implementa utilizando la clase QValue3DAxis o el tipo QML ValueAxis3D.

Un eje de categoría tiene rangos con nombre y anchos de rango ajustables. Se divide en categorías de igual tamaño basadas en el tamaño de la ventana de datos definida por el rango del eje. Las etiquetas se dibujan en las posiciones de las categorías, si se proporcionan. Las líneas de cuadrícula se dibujan entre las categorías, si son visibles. Un eje de categoría se implementa utilizando la clase QCategory3DAxis o el tipo QML CategoryAxis3D.

Si no se establecen ejes explícitamente para un gráfico, se crean ejes temporales por defecto sin etiquetas. Estos ejes predeterminados pueden modificarse mediante los accesores de eje, pero en cuanto se establece explícitamente un eje para una orientación determinada, se destruye el eje predeterminado para esa orientación.

Todos los tipos de gráficos permiten mostrar varias series simultáneamente. No es necesario que todas las series contengan el mismo número de filas y columnas. Las etiquetas de filas y columnas se toman de la primera serie añadida, a menos que se definan explícitamente para los ejes de filas y columnas.

Los formateadores de ejes pueden utilizarse para personalizar las líneas y etiquetas de la rejilla de los ejes de valores. La clase QValue3DAxisFormatter y el tipo QML ValueAxis3DFormatter proporcionan reglas de formato para un eje 3D de valor lineal. La clase QLogValue3DAxisFormatter y el tipo QML LogValueAxis3DFormatter proporcionan reglas de formato para un eje 3D de valor logarítmico.

Los ejes horizontales polares pueden utilizarse para gráficos de superficie y de dispersión estableciendo la propiedad polar.

Temas 3D

Un tema es una colección integrada de ajustes relacionados con el estilo de la interfaz de usuario que se aplican a todos los elementos visuales de un gráfico, como los colores, los tipos de letra y la visibilidad de los elementos, así como la intensidad de la luz y la luz ambiental.

Qt Charts viene con los siguientes temas predefinidos que pueden utilizarse como base para temas personalizados:

  • Qt es un tema claro con el verde como color base.
  • Primary colors es un tema claro con amarillo como color base.
  • Digia es un tema claro con el gris como color base.
  • Musgo de piedra es un tema medio oscuro con amarillo como color base.
  • Azul militar es un tema medio claro con azul como color base.
  • Retro es un tema medio claro con marrón como color base.
  • Ébano es un tema oscuro con el blanco como color base.
  • Isabelle es un tema oscuro con amarillo como color base.
  • Definido por el usuario es el tema por defecto que está pensado para ser personalizado. Para más información, consulte Default Theme.

Los temas personalizados también pueden crearse desde cero.

Si un gráfico muestra los datos de varias series de datos, algunos ajustes pueden especificarse por separado para cada serie. Por ejemplo, se pueden especificar diferentes gradientes para las distintas capas del gráfico para darle un aspecto más realista. Para ver un ejemplo, consulte Galería de gráficos de superficie.

Personalización de escenas 3D

Una escena 3D se implementa utilizando la clase Q3DScene o el tipo QML Scene3D. Una escena contiene una única cámara activa, implementada mediante la clase Q3DCamera o el tipo Camera3D, y una única fuente de luz activa, implementada mediante la clase Q3DLight o el tipo Light3D. La fuente de luz siempre está situada con respecto a la cámara. Por defecto, la posición de la luz sigue automáticamente a la cámara.

La cámara puede personalizarse especificando su posición predeterminada, rotación y nivel de zoom. Para ver un ejemplo, consulte Gráfico de dispersión simple.

Personalización de elementos

Qt Data Visualization dispone de tipos de malla predefinidos para barras, elementos y superficies. El tipo de malla determina el aspecto de una barra, un elemento o una superficie en un gráfico. Se puede especificar una malla definida por el usuario como un archivo de definición de geometría Wavefront OBJ. Para mayor variedad, puede establecerse un cuaternión para la rotación de la malla.

Además de personalizar elementos individuales, se puede utilizar la clase QCustom3DItem o el tipo QML Custom3DItem para añadir elementos personalizados a los gráficos. Los elementos tienen una malla personalizada, posición, escala, rotación y una textura opcional.

La clase QCustom3DVolume y el tipo QML Custom3DVolume pueden utilizarse para crear objetos de volumen renderizado que se añaden a un gráfico. Un objeto de volumen renderizado es una caja con una textura 3D. Se admiten tres planos de corte para el volumen, uno a lo largo de cada eje principal del volumen.

La clase QCustom3DLabel y el tipo QML Custom3DLabel implementan etiquetas personalizadas con el texto, fuente, posición, escala y rotación especificados. Los colores de las etiquetas, los bordes y el fondo están determinados por el tema activo.

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