QCustomPlot Discussion and Comments

3D charts - any chance?Return to overview


are there any plans / realistic chances to support also some kind of 3D charts?

Something like already existing in Qt
3D bar graphs
3D scatter graphs
3D surface graphs


Kind regards,

Hi Michał,

There are currently no plans to support true 3D visualization functionality in QCustomPlot.

QCP's intent is to provide high quality data visualization geared mostly towards engineering, scientific, and industrial purposes, but of course also useful in many other data reporting use cases. It is decidedly not focusing on the typical "excel" type of plots with 3D graphs that often would have been better in 2D in terms of accurate data representation for the viewer. Off the bat I would say that many "3D graphs" are just a bit of visual sugar, with more downs than ups for the sophisticated audience.

The real, useful 3D data visualization however exists of course, and they are very hard and involved to do. 3D Voxelization of CT/MRI-Scans, visualization of finite element simulations on 3D embedded manifolds, Field line simulations of finite difference time domain simulations, etc. come to mind. In all these situations, the 3D aspect adds significantly to the viewer's ability to mentally process the data correctly. And of course I'd love to have QCP support these kind of challenging scenarios, but seeing that even big companies fail at doing them properly makes me wonder whether it wouldn't be yet another pitiful attempt at getting 3D on the feature list of a framework.

Furthermore, there are established frameworks out there which are free and do a respectable job, such as VTK (https://vtk.org/vtk-in-action/#image-gallery). It would not be realistic for QCP to replicate the aspiration to quality in 2D plots for true 3D visualization, and so there are currently no plans for it as stated in the beginning.

For everyone considering whether 3D graphs should be used I recommend questioning the motive:
- If you wish to spice up your visuals, think whether the same or even a higher quality impression can be achieved by styling a 2D plot accordingly, and not going down the road of "fake" 3D plots as they distract from the viewer's grasp of the data set.
- If you still wish to use 3D graphs in such scenarios then do so with the awareness that you are prioritizing visual appeal to an unsophisticated audience in terms of data visualization, which can absolutely be the economically reasonable thing to do (I'm not trying to be a data analysis purist here, just an advocate of knowing your audience and making a conscious decision about it). Then QCP is not the right tool.
- If your data is inherently multidimensional in a way that can't be conveyed in 2D (such as by colormaps or such -- QCP will support also 2D vector fields and bubble maps in the future), then you will want to leverage a powerful framework doing that, which unfortunately is also not QCP.