Create Parallel Coordinates Chart


I would like to know how i can create Parallel Coordinates chat?

i have some paths that have various metrics and for each metrics i save the min.max in a column of a table, which i connect to a vtkMRMLTableNode.

What do i need to do afterwards to create a Parallel Coordinates Chart?

The plot type currently supported in the Plots module are:

  • line
  • bar
  • scatter
  • scatter-bar

It could be extended to also include parallel-coordinates by leveraging the vtkPlotParallelCoordinates VTK class.

If you would like to help improve the code base, we can provide additional guidance.

As a starting point, you could look at qMRMLPlotViewPrivate::updatePlotFromPlotSeriesNode


Thanks for the answer @jcfr. I will work on it an submit a PR on Slicer’s Github.

@jcfr @lassoan

Could i change the API of the following in the ctk library?

class CTK_VISUALIZATION_VTK_WIDGETS_EXPORT ctkVTKChartView : public ctkVTKOpenGLNativeWidget
  Q_INVOKABLE vtkChartXY* chart()const;

chart() to return a vtkChart object instead of vtkChartXY?
I wanna do that because i need vtkChartParallelCoordinates instead of vtkChartXY.
Also this will enable us to be able to add other subclasses of vtkChart such as, vtkChartBox, vtkChartPie. vtkHistogram2D.

Adding support for more chart types would be great!

Adding an API to get/set vtkChart* is certainly necessary for this, but simply changing the return type would be a breaking change (could cause compilation errors) that would be nice to avoid. For example we could simply add a new method (abstractChart(), generalChart(), …).

We would need to see all the necessary API changes for making a final decision on whether we should make any breaking changes.