MEP23: Multiple Figures per GUI window#
Previous work - matplotlib/matplotlib#2465 To-delete
Add the possibility to have multiple figures grouped under the same
Under the current structure, every canvas has its own window.
This is and may continue to be the desired method of operation for most use cases.
Sometimes when there are too many figures open at the same time, it is desirable to be able to group these under the same window. See PR #2194.
It is important to note, that the proposed solution, assumes that the
already in place. This is simply because the actual implementation of
Toolbar makes it pretty hard to switch between canvases.
The first implementation will be done in GTK3 using a Notebook as canvas container.
will add the following new methods
add_canvas: To add a canvas to an existing
remove_canvas: To remove a canvas from a
FigureManagerobject, if it is the last one, it will be destroyed
move_canvas: To move a canvas from one
set_canvas_title: To change the title associated with a specific canvas container
get_canvas_title: To get the title associated with a specific canvas container
get_active_canvas: To get the canvas that is in the foreground and is subject to the gui events. There is no
set_active_canvasbecause the active canvas, is defined when
showis called on a
To control which
FigureManager will contain the new
figures, an extra optional parameter figuremanager will be added, this
parameter value will be passed to
For the MultiFigure properties to be visible, the user has to
activate them directly setting
It should be backwards compatible for backends that adhere to the
FigureManagerBase structure even if they have not
implemented the MultiFigure magic yet.
Instead of modifying the
FigureManagerBase it could be possible to add
a parallel class, that handles the cases where
rcParams['backend.multifigure'] = True. This will warranty that
there won't be any problems with custom made backends, but also makes
bigger the code, and more things to maintain.