matplotlib ne pas montrer mes dessins même si je l'appelle pyplot.show()
Besoin d'aide sur matplotlib. Oui, je n'ai pas oublié l'appel de la pyplot.show().
$ ipython --pylab
import matplotlib.pyplot as p
p.plot(range(20), range(20))
Il retourne matplotlib.lines.Line2D at 0xade2b2c
que la sortie.
p.show()
Il n'y a rien à se produire. Aucun message d'erreur. Pas de nouvelle fenêtre. Rien. J'ai installer matplotlib
par l'utilisation de pip et je n'ai pas de messages d'erreur.
Détails:
Que j'utilise,
- Ubuntu
- IPython v0.11
- Python v2.6.6
- matplotlib v1.0.1
Vous devez vous connecter pour publier un commentaire.
Si j'ai mis mon backend à
template
dans~/.matplotlib/matplotlibrc
,ensuite, je peux reproduire vos symptômes:
~/.matplotlib/matplotlibrc:
Notez que le fichier
matplotlibrc
peut ne pas être dans le répertoire~/.matplotlib/
. Dans ce cas, le code suivant montre où il est:Si vous modifiez
~/.matplotlib/matplotlibrc
et changer le backend à quelque chose commeGtkAgg
, vous devriez voir un complot. Vous pouvez dresser la liste de tous les serveurs disponibles sur votre machine avecElle doit retourner une liste comme:
Référence:
ImportError: No module named _backend_gdk
~/.config/matplotlib/matplotlibrc
(pour python 3, au moins). J'ai juste eu un problème connexe, et je pense qu'il a été causé par l'utilisation de matplotlib en python 2.7, qui a créé un~/.matplotlib/
répertoire, et arrêté python 3 à partir de la lecture de la config dans~/.config/matplotlib/
. La suppression de~/.matplotlib/
résolu le problème pour moi.J'ai rencontré exactement le même problème sur Ubuntu 12.04, parce que j'ai installé matplotlib (dans un virtualenv) à l'aide de
Pour faire une longue histoire courte, mon conseil est: ne pas essayer d'installer matplotlib utilisation de pip ou à la main; de laisser un vrai gestionnaire de paquets (par exemple apt-get et synaptic) de l'installer et de toutes ses dépendances pour vous.
Malheureusement, matplotlib de backends (d'autres méthodes pour effectivement rendu de vos parcelles) ont toutes sortes de dépendances que le pip ne traitera pas avec. Pire encore, il échoue silencieusement; c'est,
pip install matplotlib
semble s'installer matplotlib avec succès. Mais quand vous essayez de l'utiliser (par exemple,pyplot.show()
), pas d'intrigue fenêtre apparaîtra. J'ai essayé toutes les différentes sorties que les gens sur le web suggèrent (Qt4Agg, GTK, etc.), et ils ont tous échoué (c'est à dire quand j'ai essayé d'import matplotlib.pyplot, je reçoisImportError
parce qu'il essaie d'importer certains de dépendance qui manque). J'ai ensuite étudié comment installer ces dépendances, mais ça m'a donné envie de renoncer à l'utilisation de pip (dans virtualenv) comme une solution de l'installation de la solution pour tout colis qui a non-paquet Python dépendances.L'ensemble de l'expérience m'a envoyé de ramper jusqu'à apt-get et synaptic (c'est à dire le gestionnaire de paquets de Ubuntu) pour installer le logiciel comme matplotlib. Cela a parfaitement fonctionné. Bien sûr, cela signifie que vous ne pouvez installer dans votre système, répertoires, pas de virtualenv bonté, et vous êtes coincé avec les versions d'Ubuntu distribue, qui peut être loin derrière la version actuelle...
--system-site-packages
l'option?pip install
estagg
. Je ne sais pas pourquoi, mais vous pouvez le modifier selon les unutbu de réponse.pip
a l'avantage majeur de l'installation d'une mise à jour de la versionapt
installe une version obsolète. Parfois il y a des corrections de bugs ou de nouvelles fonctionnalités que vous voulez ou avez besoin.pip
est généralement une excellente solution pour installer les paquets python.virtualenv
travaillé! Et j'ai pu installer matplotlib 1.4 à partir de la source à l'échelle du système (sur Ubuntu), mais pas sousvirtualenv
.%matplotlib inline
Pour moi de travailler avec un ordinateur portable, en ajoutant la ligne ci-dessus avant de l'intrigue fonctionne.
%pylab inline
sur mon portable comme indiqué par @Bhanu Pratap SinghRéférence pour l'avenir,
J'ai rencontré le même problème -- pylab a pas tenu, en vertu de ipython. Le problème a été résolu en changeant ipython du fichier de config {ipython_config.py}. Dans le fichier de configuration
c.InteractiveShellApp.pylab = 'auto'
J'ai changé de "auto" à " qt " et maintenant, je vois des graphiques
agg
, je ne pense pas que%pylab inline
de travail, ni des parcelles afficher lorsque vous exécutez des scripts directement ie:python myscript.py
. unutbu la réponse devrait fixer partout.Il suffit de taper:
plt.ion()
Voir https://www.youtube.com/watch?v=1zmV8lZsHF4 à 23:30 !
plt
est utilisé en raison de mon import:import matplotlib.pyplot
comme pltJe suis en utilisant python2.7 sur un mac avec iTerm2.
Ce qui a résolu mon problème était juste à l'aide de la ci-dessous deux lignes dans ipython notebook en haut
Et cela a fonctionné. Je suis en utilisant Ubuntu16.04 et ipython-5.1
%pylab inline
fait que cela fonctionne.J'ai dû installer matplotlib à partir de la source pour obtenir que cela fonctionne. La clé des instructions (à partir de http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/) sont:
En changeant l'arrière-plan, comme @unutbu dit, j'ai juste couru dans les charges de plus en plus de problèmes avec tous les différents backends ne fonctionne pas non plus.
Ajouter les deux lignes suivantes avant d'importer pylab semble fonctionner pour moi
Être sûr d'avoir ce script de démarrage activé :
( Préférences > Console > Options Avancées )
Si la norme PYTHONSTARTUP est activé, vous n'aurez pas interactif de la parcelle
Similaire à @Rikki, j'ai résolu ce problème en mettant à niveau
matplotlib
avecpip install matplotlib --upgrade
. Si vous ne pouvez pas effectuer la désinstallation et la réinstallation peut travailler.Après l'exécution de votre code sont les suivants:
J'ai trouvé que j'avais besoin de
window = Tk()
et puiswindow.mainloop()
Pour Ubuntu 12.04:
Pour moi le problème se produit si il suffit de créer un vide
matplotlibrc
fichier sous~/.matplotlib
sur macOS. L'ajout de "backend: macosx" en elle résout le problème.Je pense que c'est un bug: si
backend
n'est pas spécifié dans monmatplotlibrc
il doit prendre la valeur par défaut.