Home < Project Week 25 < Interactive Manipulation of Plots and Graphs
Back to Projects List
|| Approach and Plan
|| Progress and Next Steps
Implementing the following plotting and graphs infrastructure enhancement:
- Panning a zoomed section of the graphs;
- Click and Drag a point;
- Data selection (select many points at once).
- Review if jqPlot can satisfy our requirements
- Implement them
- Once updated to jqplot version 1.0.9 (necessary for click and drag) the plotting does not work anymore. The infrastructure needs to be updated. Data selection will be hard to achieve.
- We decided to switch to vtkPlots (jqplot will be preserved for producing plots at publication quality level). The new infrastructure will allow a direct C++ integration of the vtkTable into the plotting (e.g., all the observations and data handling are automatically set), better performance (i.e., interactive performance up to hundreds of thousands of points) and easier customization.
- VTK PLOTS already have the following interactive desired functionality: zooming (middle click), panning (left click) and data selection (right click).
- The following widget, MRML and View classes have been designed and implemented: vtkMRMLPlotViewNode, vtkMRMLPlotNode, qMRMLPlotWidget, qMRMLPlotViewControllerWidget and qMRMLPlotView.
- A New Plot Layout has been created (index 36) and exposed to the qSlicerAppMainWindow widget.
- TO DO: connecting the new infrastructure with the Table Module.
- TO DO: implementing click and drag style interactor (e.g., https://echnotstechno.wordpress.com/2014/08/13/interactive-2d-plots-with-vtk-the-visualization-toolkit/ ).
- Implemented : https://www.slicer.org/wiki/Documentation/Nightly/Developers/Plots
The idea is to be able to modify the parameters (in the table) of a model (blue object in the 3D View) directly from the plotting window.
VTKPLOTS sin and cos plus data selection (red crosses) example:
Background and References