Gestionnaire d'outils Matplotlib

PythonPythonBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce tutoriel vous montrera comment modifier la barre d'outils, créer des outils, ajouter des outils et supprimer des outils à l'aide de matplotlib.backend_managers.ToolManager.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet d'étude pour accéder à Jupyter Notebook pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.

Lister tous les outils contrôlés par le ToolManager

La première étape consiste à lister tous les outils contrôlés par le ToolManager. Cela peut être réalisé en créant un outil personnalisé nommé ListTools. La classe ListTools hérite de ToolBase. La méthode trigger() de ListTools affiche le nom, la description et la carte de touches de tous les outils disponibles.

class ListTools(ToolBase):
    """Lister tous les outils contrôlés par le `ToolManager`."""
    default_keymap = 'm'  ## raccourci clavier
    description = 'Lister les outils'

    def trigger(self, *args, **kwargs):
        print('_' * 80)
        fmt_tool = "{:12} {:45} {}".format
        print(fmt_tool('Nom (id)', 'Description de l\'outil', 'Carte de touches'))
        print('-' * 80)
        tools = self.toolmanager.tools
        for name in sorted(tools):
            if not tools[name].description:
                continue
            keys = ', '.join(sorted(self.toolmanager.get_tool_keymap(name)))
            print(fmt_tool(name, tools[name].description, keys))
        print('_' * 80)
        fmt_active_toggle = "{!s:12} {!s:45}".format
        print("Activer/Désactiver les outils")
        print(fmt_active_toggle("Groupe", "Actif"))
        print('-' * 80)
        for group, active in self.toolmanager.active_toggle.items():
            print(fmt_active_toggle(group, active))

Afficher les lignes avec un gid donné

La deuxième étape consiste à créer un outil personnalisé nommé GroupHideTool. La classe GroupHideTool hérite de ToolToggleBase. La méthode set_lines_visibility() de GroupHideTool définit la visibilité de toutes les lignes du tracé qui ont le gid spécifié sur True ou False, selon que l'outil est activé ou désactivé.

class GroupHideTool(ToolToggleBase):
    """Afficher les lignes avec un gid donné."""
    default_keymap = 'S'
    description = 'Afficher par gid'
    default_toggled = True

    def __init__(self, *args, gid, **kwargs):
        self.gid = gid
        super().__init__(*args, **kwargs)

    def enable(self, *args):
        self.set_lines_visibility(True)

    def disable(self, *args):
        self.set_lines_visibility(False)

    def set_lines_visibility(self, state):
        for ax in self.figure.get_axes():
            for line in ax.get_lines():
                if line.get_gid() == self.gid:
                    line.set_visible(state)
        self.figure.canvas.draw()

Ajouter des outils personnalisés

La troisième étape consiste à ajouter les outils personnalisés que nous avons créés dans les étapes 1 et 2. Cela peut être réalisé en appelant la méthode add_tool() du ToolManager. Nous ajoutons les outils ListTools et GroupHideTool au ToolManager. Nous ajoutons également l'outil Show à la Toolbar, qui a été créée à l'aide de la méthode add_tool() de Toolbar.

fig.canvas.manager.toolmanager.add_tool('List', ListTools)
fig.canvas.manager.toolmanager.add_tool('Show', GroupHideTool, gid='mygroup')
fig.canvas.manager.toolbar.add_tool('Show', 'navigation', 1)

Supprimer des outils

La quatrième étape consiste à supprimer le bouton forward de la Toolbar. Nous pouvons le faire en appelant la méthode remove_tool() du ToolManager.

fig.canvas.manager.toolmanager.remove_tool('forward')

Sommaire

Dans ce tutoriel, nous avons appris à modifier la Toolbar, à créer des outils personnalisés, à ajouter des outils et à supprimer des outils à l'aide de matplotlib.backend_managers.ToolManager. Nous avons créé un outil personnalisé nommé ListTools, qui liste tous les outils contrôlés par le ToolManager. Nous avons également créé un outil personnalisé nommé GroupHideTool, qui définit la visibilité de toutes les lignes du tracé qui ont le gid spécifié sur True ou False, selon que l'outil est activé ou désactivé. Enfin, nous avons ajouté les outils personnalisés au ToolManager, ajouté l'outil Show à la Toolbar et supprimé le bouton forward de la Toolbar.