194 votes

matplotlib ne montre pas mes dessins, bien que j’ai appeler pyplot.show()

J'ai besoin de votre aide à propos de 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 de toute la production.

p.show()

Il n'y a rien à se produire. Aucun message d'erreur. Pas de nouvelle fenêtre. Rien. J'installe matplotlib par l'utilisation de pip et je n'ai pas de messages d'erreur.

Détails:

J'utilise,

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

187voto

unutbu Points 222216

Si j'ai mis mon backend d' template en ~/.matplotlib/matplotlibrc, ensuite, 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 est:

>>> 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 modifiez ~/.matplotlib/matplotlibrc et de changer le backend à quelque chose comme GtkAgg, vous devriez voir un complot. Vous pouvez dresser la liste de tous les serveurs disponibles sur votre machine avec

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

Elle doit 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:

75voto

Christopher Lee Points 371

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

pip install matplotlib

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çois ImportError parce que c'est en essayant 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'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...

11voto

anon Points 71

Pour un usage ultérieur,

J’ai rencontré le même problème--pylab ne montrait pas sous ipython. Le problème a été résolu en changeant le fichier de configuration d’ipython {ipython_config.py}. Dans le fichier de config

``

J’ai changé « auto » de « qt » et maintenant je vois graphiques

0voto

Covich Points 47

Soyez sûr d’avoir ce script de démarrage activé : (Préférences > Console > Options avancées)

Si le standard PYTHONSTARTUP est activé vous n’aurez pas un complot interactif

-2voto

nanvel Points 33

Pour Ubuntu 12.04 :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X