2012 Winter Project Week:Charts
- GE: Jim Miller, Kedar Patwardhan
- Isomics: Steve Pieper
Develop a view for charting that can be packed in a Slicer Layout. Charts will be able to display line graphs, bar graphs, histograms, etc.
The approach is to model the new view after the SliceViews and ThreeDViews. This requires
- ChartViewNode - one to one with a ChartView
- ChartNode - contains a list to DoubleArrayNodes to display in the chart and contains the chart properties
- ChartWidget - contains a controller and chart view
- ChartViewControllerWidget - popup to control the content and properties of a chart
- ChartView - widget to display the actual chart
To use jqplot, the initial ChartView will be a subclass of qWebView.
Initial ChartNode, ChartViewNode, ChartControllerWidget (placeholder), ChartView, and ChartWidget have been constructed. Charts can be defined in MRML and presented in the ChartView.
SuperBuild support to download jqPlot.
jqPlot packaged within Slicer4 as a Qt Resources
Defined several Layouts that include ChartViews: Conventional Quantitative, Four-up Quantitative.
Progress since Project Week
- Chart resizing with window
- Chart properties at the Chart and Array level
- Chart type, show lines, show grid, show legend, title, x-axis label, y-axis label
- Chart types: line and bar
- ChartController to modify parameters
- Chart zooming
- dataPointClicked() signal - Qt signal that fires when user clicks on a data point
Integrated directly into Slicer4