Qt Data Visualization Technology Preview and Charts 1.3.1 Release

When we began developing the Charts library we set as one of the goals to create a Charting component that makes it easy to create good looking interactive data centric user interfaces. We have continued with this path and we are now introducing two new releases in this area.

We are releasing a technology preview of Qt Data Visualization library which introduces a new dimension to the way data can be presented. Data Visualization is a totally new implementation built on Qt 5 and OpenGL which has enabled us to take the full advantage of hardware acceleration and Qt Quick 2.

Even though Data Visualization library has some similarities with Charts it does not replace Charts. Development of Charts continues and we have now also released the Charts 1.3.1 release which contains 25 enhancements and performance improvements.

Harnessing the Power of 3D in Data Visualization

Using 3D in data visualization has been around for some time now but it is quite seldom truly utilized. Most common use case is to draw 3D like bar charts in order to increase the visual Look & Feel of the presentation. However in many cases the 3D presentation does not bring any real value and in several cases it actually makes it harder to read the data. Combining User Interaction and real time 3D drawing enables us to create user interfaces that are efficient in UI space consumption.

Main features included in the Technology Preview:

Data Visualization Types

 Multiple data visualization options: 3D Bars, 3D Scatter, and 3D Surface

3D Bars Sliced3D Surface Sliced

2D slice views of the 3D data

3D Bars

Interactive data: rotate, zoom, and highlight data using mouse or touch

Surface with selected Range

Customizable axes for data - control viewable data window with axis ranges

Data Models and easy integration QML

The data that users wish to visualize comes in many formats, all of which cannot obviously be directly supported. Therefore, Qt Data Visualization implements data proxies into which user can feed their data in a known format. For common use cases, Qt Data Visualization offers specialized proxies. One such case is having data in an item model (QAbstractItemModel subclass), which is a common way to store data in Qt applications.  These proxies are simple to use: just give them a pointer to the item model containing the data and the mapping object containing rules how to map the data into format the basic proxy can digest. Mapping objects work with item model roles. Each data item in the model can have different values for different roles. For example, with QItemModelBarDataMapping you can specify which role is used to determine which row the item belongs to, which role does the same for columns, and which role specifies the value of the item. When the proxy resolves the data from the model, it uses these mappings to generate the rows and columns of the bar graph.

In the QML side you can easily create for example an UI that integrates Qt Data Visualization and Qt Quick Controls TableView like this:

    ListModel {
        id: dataModel
        ListElement{ year: "2006"; month: "Jan"; income: "5" }
        ListElement{ year: "2006"; month: "Feb"; income: "6" }
        ListElement{ year: "2006"; month: "Mar"; income: "4" }
        ListElement{ year: "2007"; month: "Mar"; income: "4" }

BarDataMapping { id: valueMapping rowRole: "year" columnRole: "month" valueRole: "income" } ItemModelBarDataProxy { id: modelProxy activeMapping: valueMapping itemModel: dataModel }

Bars3D { id: testGraph dataProxy: modelProxy ...


TableView { id: tableView anchors.top: testGraph.bottom width: testGraph.width TableViewColumn{ role: "year" ; title: "Year" } TableViewColumn{ role: "month" ; title: "Month" } TableViewColumn{ role: "income" ; title: "Income" } model: dataModel } }

The Road Ahead

Technology Preview is still work in progress and we are working for example with customizable input handling and scene handling (full control of cameras and lights) and customizable themes. There are also some rough edges we are improving, please see the README file included in the package for detailed information about the known issues.

We will be issuing a quick survey later this year for those who have downloaded the preview version so that the feedback can be used as the basis for the development of the future versions.

Charts 1.3.1 Release

The Charts release is a patch level release and contains 25 enhancements and performance improvements.  For example label handling has been improved so that too long labels are now truncated in pie slices and using HTML  in labels has been improved. We have also improved the support for Qt minimal configuration options which makes it easier to use the Charts in embedded environments.

Full list of changes has been included in the README file included in the release package.

Take it for a Test Drive

The Charts and Data Visualization Tech Preview are available as a source code delivery in the Qt Enterprise Customer Portal and Charts release is also available as an update through the Qt Installer Maintenance Tool.

Both of these add-ons are included in the Qt Enterprise License. Full API Documentation and a set of example applications are also included for enabling a quick start with the add-ons. You can test out the Charts and Data Visualization Technology Preview and the rest of Qt Enterprise by downloading a 30-day free evaluation.

Blog Topics: