Generic visualisation component for an enveloppe
We need a visualisation component for displaying viability kernels as an enveloppe.
- If the system is in 2D: a 2D display is used.
- If the system is in more than 2D: the user can choose between 2D or 3D views, with additional slicing control if needed.
Generic actions on component
- Change the resolution of data (points per axes), and displays explicitly this resolution in a legend
- Switch between 2D/3D mode if available
- Make a snapshot with legend of the visualisation controls states
- Save the visualisation state with a description, including a snapshot
Slicing control
If the given data have more dimension than the plot, the user can use sliders for configuring the section of the space to slice for additional dimensions. The user should be able to select the dimensions that will be plotted and those that will be sliced.
- Display a select list for each visualisation axe (2 or 3) for selecting displayed variable
- Display a slider for each sliced dimension
Isosurface option
When slicing the data in 2D, we can plot isosurfaces (using distance to border) instead of points. When plotting in 3D, we can try to add projection of isosurfaces on plot's faces, like on the contourf3D of matplotlib
Plots matrix (pairs) option
For data in 4D, we can propose to discretize with 4 or 5 values on 2 dimensions, and build a matrix of 2D-plots with the 2 others dimensions (like with the pairs
fonction in R).
The discretized value could be adjusted with slider along each axes of the matrix. And the selected dimensions could be selectable with a select list at the end of each slider.