Je viens d'installer matplotlib dans Ubuntu 9.10 à l'aide du système de paquet synaptic. Cependant, quand j'essaie le simple exemple suivant
>>> from pylab import plot;
>>> plot([1,2,3],[1,2,3])
[<matplotlib.lines.Line2D object at 0x9aa78ec>]
Je n'ai pas de fenêtre d'intrigue. Des idées sur la façon de faire apparaître la fenêtre d’intrigue?
Vous pouvez taper
import pylab
pylab.show()
ou mieux, utilisez ipython -pylab
.
pylab.show()
fonctionne mais bloque (vous devez fermer la fenêtre).
Une solution beaucoup plus pratique consiste à faire pylab.ion()
(mode interactif activé) au démarrage: toutes les commandes pyplot.*
(l'équivalent pylab de), affichent immédiatement leur tracé. Plus d'informations sur le mode interactif peuvent être trouvées sur le site web officiel.
J'utilise également le ipython -pylab
(--pylab
, dans les versions les plus récentes) encore plus pratique, ce qui vous permet d'ignorer la partie from … import …
(%pylab
fonctionne également dans les versions plus récentes d'IPython).
Essaye ça:
import matplotlib
matplotlib.use('TkAgg')
AVANT d'importer le pylab
Des erreurs apparaissent? Cela pourrait être un problème de ne pas avoir défini le backend. Vous pouvez le définir à partir de l'interpréteur Python ou d'un fichier de configuration (.matplotlib/matplotlibrc
) de votre répertoire personnel.
Pour définir le backend en code, vous pouvez faire
import matplotlib
matplotlib.use('Agg')
où 'Agg' est le nom du backend. Les backends présents dépendent de votre installation et de votre système d'exploitation.
http://matplotlib.sourceforge.net/faq/installing_faq.html#backends
L'extrait de code ci-dessous fonctionne à la fois sur Eclipse et sur le shell Python:
import numpy as np
import matplotlib.pyplot as plt
# Come up with x and y
x = np.arange(0, 5, 0.1)
y = np.sin(x)
# Just print x and y for fun
print x
print y
# Plot the x and y and you are supposed to see a sine curve
plt.plot(x, y)
# Without the line below, the figure won't show
plt.show()
Modern IPython utilise l'argument "--matplotlib
" avec un paramètre facultatif de backend. La valeur par défaut est "auto", ce qui est généralement suffisant sur Mac et Windows. Je ne l'ai pas testé sur Ubuntu ou sur aucune autre distribution Linux, mais je m'attendrais à ce que cela fonctionne.
ipython --matplotlib
Si vous rencontrez un problème dans lequel pylab.show()
gèle la fenêtre IPython (cela peut être spécifique à Mac OS X; incertain), vous pouvez cmd-c dans la fenêtre IPython, basculer vers la fenêtre de traçage et elle éclatera.
Apparemment, les prochains appels à pylab.show()
ne gèlent pas la fenêtre IPython, mais uniquement le premier appel. Malheureusement, j'ai constaté que le comportement de la fenêtre de tracé/des interactions avec show () change chaque fois que je réinstalle matplotlib. Cette solution n'est donc peut-être pas toujours valable.
--pylab
ne fonctionne plus pour Jupyter , mais heureusement, nous pouvons ajouter un Tweak dans le fichier ipython_config.py
pour obtenir les fonctionnalités pylab
ainsi que autoreload
.
c.InteractiveShellApp.extensions = ['autoreload', 'pylab']
c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab']
Si vous démarrez IPython avec l'option --pylab
, vous ne devriez pas avoir à appeler show()
ni draw()
. Essaye ça:
ipython --pylab=inline