web-dev-qa-db-fra.com

matplotlib ne montre pas mes dessins bien que j'appelle pyplot.show ()

Aide requise sur matplotlib. Oui, je n’ai pas oublié d’appeler pyplot.show ().

$ ipython --pylab

import matplotlib.pyplot as p 
p.plot(range(20), range(20))

Il retourne matplotlib.lines.Line2D at 0xade2b2c en sortie.

p.show()

Il n'y a rien à arriver. Aucun message d'erreur. Pas de nouvelle fenêtre. Rien. J'ai installé matplotlib en utilisant pip et je n'ai pris aucun message d'erreur. 

Détails:

J'utilise,

  • Ubuntu
  • IPython v0.11
  • Python v2.6.6
  • matplotlib v1.0.1
141
Baskaya

Si je règle mon arrière-plan à template dans ~/.matplotlib/matplotlibrc, .__, je peux reproduire vos symptômes:

~/.matplotlib/matplotlibrc:

# backend      : GtkAgg
backend      : template

Notez que le fichier matplotlibrc peut ne pas être dans le répertoire ~/.matplotlib/. Dans ce cas, le code suivant montre où il se trouve:

>>> import matplotlib
>>> matplotlib.matplotlib_fname()

In [1]: import matplotlib.pyplot as p

In [2]: p.plot(range(20),range(20))
Out[2]: [<matplotlib.lines.Line2D object at 0xa64932c>]

In [3]: p.show()

Si vous éditez ~/.matplotlib/matplotlibrc et changez le backend en quelque chose comme GtkAgg, vous devriez voir un tracé. Vous pouvez lister tous les backends disponibles sur votre machine avec

import matplotlib.rcsetup as rcsetup
print(rcsetup.all_backends)

Il devrait retourner une liste comme:

['GTK', 'GTKAgg', 'GTKCairo', 'FltkAgg', 'MacOSX', 'QtAgg', 'Qt4Agg',
'TkAgg', 'WX', 'WXAgg', 'CocoaAgg', 'agg', 'cairo', 'emf', 'gdk', 'pdf',
'ps', 'svg', 'template']

Référence:

156
unutbu

J'ai rencontré exactement le même problème sur Ubuntu 12.04, car j’ai installé matplotlib (dans une virtualenv) en utilisant

pip install matplotlib

Pour résumer, mon conseil est le suivant: n’essayez pas d’installer Matplotlib à l’aide de pip ou à la main; Laissez un vrai gestionnaire de paquets (par exemple, apt-get/synaptic) l’installer avec toutes ses dépendances.

Malheureusement, les backends de matplotlib (méthodes alternatives pour le rendu de vos graphes) ont toutes sortes de dépendances que pip ne traitera pas. Pire encore, cela échoue silencieusement; c'est-à-dire que pip install matplotlib semble installer matplotlib avec succès. Mais lorsque vous essayez de l’utiliser (par exemple, pyplot.show()), aucune fenêtre de tracé ne s’affiche. J'ai essayé tous les différents backends proposés par les internautes (Qt4Agg, GTK, etc.), et ils ont tous échoué (c'est-à-dire lorsque j'ai essayé d'importer matplotlib.pyplot, j'obtiens ImportError car il tente d'importer une dépendance manquante). J'ai ensuite cherché comment installer ces dépendances, mais cela m'a donné envie d'abandonner l'utilisation de pip (dans virtualenv) en tant que solution d'installation viable pour tout paquet ayant des dépendances autres que Python. 

Toute cette expérience m'a renvoyé à apt-get/synaptic (le gestionnaire de paquets Ubuntu) pour installer un logiciel tel que matplotlib. Cela a fonctionné parfaitement. Bien sûr, cela signifie que vous ne pouvez installer que dans les répertoires de votre système, pas de bonté virtuelle, et que vous êtes coincé avec les versions distribuées par Ubuntu, ce qui est peut-être bien en retard sur la version actuelle ...

64
Christopher Lee

% matplotlib inline

Pour moi, avec Notebook, ajouter la ligne ci-dessus avant que l'intrigue fonctionne.

29
grampus

Pour référence future,

J'ai rencontré le même problème - pylab n'était pas affiché sous ipython. Le problème a été résolu en modifiant le fichier de configuration ipython {ipython_config.py}. Dans le fichier de configuration

c.InteractiveShellApp.pylab = 'auto'

J'ai changé 'auto' en 'qt' et maintenant je vois des graphiques

9
anon

Ce qui a résolu mon problème, c’est d’utiliser les deux lignes ci-dessous dans le cahier ipython en haut.

%matplotib inline
%pylab inline

Et ça a fonctionné. J'utilise Ubuntu16.04 et ipython-5.1

5
Bhanu Pratap Singh

J'ai dû installer matplotlib à partir de la source pour que cela fonctionne. Les instructions clés (de http://www.pyimagesearch.com/2015/08/24/resolved-matplotlib-figures-not-showing-up-or-displaying/ ) sont les suivantes:

$ workon plotting
$ pip uninstall matplotlib
$ git clone https://github.com/matplotlib/matplotlib.git
$ cd matplotlib
$ python setup.py install

En changeant le backend, comme @unutbu le dit, je me suis heurté à beaucoup de problèmes avec les différents backends ne fonctionnant pas non plus.

2
Rikki

Ajouter les deux lignes suivantes avant d'importer pylab semble fonctionner pour moi 

import matplotlib
matplotlib.use("gtk")

import sys
import pylab
import numpy as np
2
Pau

J'ai trouvé que j'avais besoin de window = Tk(), puis de window.mainloop()

0
R Keene

Après avoir exécuté votre code, incluez:

import pylab as p
p.show()
0
Shrish Trivedi

Assurez-vous que ce script de démarrage est activé: (Préférences> Console> Options avancées) 

/usr/lib/python2.7/dist-packages/spyderlib/scientific_startup.py

Si le PYTHONSTARTUP standard est activé, vous n’aurez pas de tracé interactif.

0
Covich

Semblable à @Rikki, j'ai résolu ce problème en mettant à jour matplotlib avec pip install matplotlib --upgrade. Si vous ne pouvez pas mettre à niveau, la désinstallation et la réinstallation peuvent fonctionner.

pip uninstall matplotlib
pip install matplotlib
0
Seanny123