Les graphiques sont normalement affichés lorsque j'exécute des fichiers à partir du shell ipython ou d'un ordinateur portable ipython, mais ils ne s'affichent pas lorsque j'exécute le fichier à partir d'un terminal bash. Tout le reste fonctionne correctement lorsqu'il est exécuté à partir d'un terminal bash.
Exemple python (trial.py):
import matplotlib.pyplot as plt
print 'please, show my graph'
plt.plot([1,2,3], [1,2,3])
plt.show()
C'est ce que je reçois (l'intrigue ne se présente pas):
[~/Desktop]$ python trial.py
please, show my graph
[~/Desktop]$
Si je fais
import matplotlib
matplotlib.use('TkAgg')
avant d'importer pyplot, une fenêtre s'ouvre et se ferme immédiatement lorsque je l'exécute depuis le terminal.
J'ai essayé différentes méthodes d'importation de modules sans succès:
import matplotlib.pyplot as plt
import matplotlib.pylab as plt
from matplotlib import pyplot as plt
from matplotlib import pylab as plt
J'ai la fonction plt.show () dans mon fichier.
Savez-vous comment je peux résoudre ce problème?
Quelques informations sur les versions et l'installation:
Je suis sur un Mac OSX 10.11.3.
In [61]: print matplotlib.__file__
/usr/local/lib/python2.7/site-packages/matplotlib/__init__.pyc
In [62]: print matplotlib.__version__
1.4.2
In [64]: print sys.version
2.7.9 (default, Apr 7 2015, 07:58:25)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
In [65]: matplotlib.get_backend()
Out[65]: u'MacOSX'
Vous devez ajouter matplotlib.pyplot.show()
dans votre code pour afficher les tracés en mode non interactif. Voir la documentation sur http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.show
Après d'autres informations de l'OP, le blocage devait être activé explicitement à l'aide de plt.show(block=True)
.