matplotlib.backend_managers#

class matplotlib.backend_managers.ToolEvent(name, sender, tool, data=None)[source]#

Bases: object

Event for tool manipulation (add/remove).

class matplotlib.backend_managers.ToolManager(figure=None)[source]#

Bases: object

Manager for actions triggered by user interactions (key press, toolbar clicks, ...) on a Figure.

Attributes:
figureFigure

Figure that holds the canvas.

keypresslockLockDraw

LockDraw object to know if the canvas key_press_event is locked.

messagelockLockDraw

LockDraw object to know if the message is available to write.

property active_toggle#

Currently toggled tools.

add_tool(name, tool, *args, **kwargs)[source]#

Add tool to ToolManager.

If successful, adds a new event tool_trigger_{name} where {name} is the name of the tool; the event is fired every time the tool is triggered.

Parameters:
namestr

Name of the tool, treated as the ID, has to be unique.

tooltype

Class of the tool to be added. A subclass will be used instead if one was registered for the current canvas class.

See also

matplotlib.backend_tools.ToolBase

The base class for tools.

Notes

args and kwargs get passed directly to the tools constructor.

property canvas#

Canvas managed by FigureManager.

property figure#

Figure that holds the canvas.

get_tool(name, warn=True)[source]#

Return the tool object with the given name.

For convenience, this passes tool objects through.

Parameters:
namestr or ToolBase

Name of the tool, or the tool itself.

warnbool, default: True

Whether a warning should be emitted it no tool with the given name exists.

Returns:
ToolBase or None

The tool or None if no tool with the given name exists.

get_tool_keymap(name)[source]#

Return the keymap associated with the specified tool.

Parameters:
namestr

Name of the Tool.

Returns:
list of str

List of keys associated with the tool.

message_event(message, sender=None)[source]#

Emit a ToolManagerMessageEvent.

remove_tool(name)[source]#

Remove tool named name.

Parameters:
namestr

Name of the tool.

set_figure(figure, update_tools=True)[source]#

Bind the given figure to the tools.

Parameters:
figureFigure
update_toolsbool, default: True

Force tools to update figure.

toolmanager_connect(s, func)[source]#

Connect event with string s to func.

Parameters:
sstr

The name of the event. The following events are recognized:

  • 'tool_message_event'

  • 'tool_removed_event'

  • 'tool_added_event'

For every tool added a new event is created

  • 'tool_trigger_TOOLNAME', where TOOLNAME is the id of the tool.

funccallable

Callback function for the toolmanager event with signature:

def func(event: ToolEvent) -> Any
Returns:
cid

The callback id for the connection. This can be used in toolmanager_disconnect.

toolmanager_disconnect(cid)[source]#

Disconnect callback id cid.

Example usage:

cid = toolmanager.toolmanager_connect('tool_trigger_zoom', onpress)
#...later
toolmanager.toolmanager_disconnect(cid)
property tools#

A dict mapping tool name -> controlled tool.

trigger_tool(name, sender=None, canvasevent=None, data=None)[source]#

Trigger a tool and emit the tool_trigger_{name} event.

Parameters:
namestr

Name of the tool.

senderobject

Object that wishes to trigger the tool.

canvaseventEvent

Original Canvas event or None.

dataobject

Extra data to pass to the tool when triggering.

update_keymap(name, key)[source]#

Set the keymap to associate with the specified tool.

Parameters:
namestr

Name of the Tool.

keystr or list of str

Keys to associate with the tool.

class matplotlib.backend_managers.ToolManagerMessageEvent(name, sender, message)[source]#

Bases: object

Event carrying messages from toolmanager.

Messages usually get displayed to the user by the toolbar.

class matplotlib.backend_managers.ToolTriggerEvent(name, sender, tool, canvasevent=None, data=None)[source]#

Bases: ToolEvent

Event to inform that a tool has been triggered.