web-dev-qa-db-fra.com

Objectif de "% matplotlib inline"

Quelqu'un pourrait-il m'expliquer en quoi consiste exactement l'utilisation de %matplotlib inline?

300
Rishabh

%matplotlib est une fonction magique en IPython. Je citerai ici la documentation pertinente que vous pourrez lire pour plus de commodité:

IPython dispose d’un ensemble de "fonctions magiques" prédéfinies que vous pouvez appeler avec une syntaxe de style de ligne de commande. Il existe deux types de magie, orientée ligne et cellule. Les magics de ligne sont préfixés du caractère% et fonctionnent beaucoup comme les appels de ligne de commande du système d’exploitation: ils obtiennent en tant qu’argument le reste de la ligne, les arguments étant passés sans parenthèses ni guillemets. La magie des lignes peut renvoyer des résultats et peut être utilisée dans la partie droite d'une affectation. Les magics de cellules ont le préfixe d'un double %% et ce sont des fonctions qui ont pour argument non seulement le reste de la ligne, mais également les lignes situées en dessous dans un argument séparé.

%matplotlib inlinedéfinit le backend de matplotlib sur le backend 'inline' :

Avec ce moteur, la sortie des commandes de traçage est affichée en ligne dans les interfaces, comme le bloc-notes Jupyter, directement sous la cellule de code qui l’a produit. Les parcelles résultantes seront alors également stockées dans le document de cahier.

Lorsque vous utilisez le backend 'inline', vos graphiques matplotlib seront inclus dans votre cahier, à côté du code. Il peut également être intéressant de lire Comment rendre le tracé matplotlib du bloc-notes IPyth en ligne pour savoir comment l’utiliser dans votre code.

Si vous souhaitez également une interactivité, vous pouvez utiliser le nbagg backend avec %matplotlib notebook (sous IPython 3.x), comme décrit ici .

192
Aurora0001

Si vous exécutez IPython, le %matplotlib inline fera apparaître les résultats de votre tracé et les stocker dans le cahier.

Selon documentation

Pour le configurer, vous devez exécuter le %matplotlib magic command avant d'effectuer tout traçage ou toute importation de matplotlib. Ceci effectue la configuration en arrière-plan nécessaire pour qu'IPython fonctionne correctement, main dans la main avec matplotlib; cependant, il n'exécute pas réellement les commandes Python import, c'est-à-dire qu'aucun nom n'est ajouté à l'espace de nom.

Un backend particulièrement intéressant, fourni par IPython, est le backend inline. Ceci est disponible uniquement pour le Jupyter Notebook et le Jupyter QtConsole. Il peut être invoqué comme suit:

%matplotlib inline

Avec ce moteur, la sortie des commandes de traçage est affichée en ligne dans les interfaces comme le bloc-notes Jupyter, directement sous la cellule de code qui l’a produite. Les parcelles résultantes seront alors également stockées dans le document de cahier.

60
matusko

Si vous voulez ajouter des tracés à votre carnet Jupyter, alors %matplotlib inline est une solution standard. Et il existe d'autres commandes magiques qui utiliseront matplotlib de manière interactive au sein de Jupyter.

%matplotlib: n'importe quelle commande de tracé plt provoque maintenant l'ouverture d'une fenêtre de figure, et d'autres commandes peuvent être exécutées pour mettre à jour le tracé. Certaines modifications ne seront pas automatiquement dessinées. Pour forcer une mise à jour, utilisez plt.draw()

%matplotlib notebook: conduira à des tracés interactifs intégrés dans le cahier, vous pouvez zoomer et redimensionner la figure

%matplotlib inline: dessine uniquement des images statiques dans le cahier

14
Yossarian42