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



Answers

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

pip install matplotlib

Pour faire court, mon conseil est: n'essayez pas d'installer matplotlib en utilisant pip ou à la main; laissez un vrai gestionnaire de paquets (par exemple apt-get / synaptic) l'installer et toutes ses dépendances pour vous.

Malheureusement, les backends de matplotlib (méthodes alternatives pour rendre vos tracés) ont toutes sortes de dépendances que pip ne traitera pas. Pire encore, il échoue silencieusement; c'est-à-dire que pip install matplotlib semble installer correctement matplotlib. Mais quand vous essayez de l'utiliser (par exemple pyplot.show() ), aucune fenêtre de traçage n'apparaîtra. J'ai essayé tous les différents backend que les gens sur le web suggèrent (Qt4Agg, GTK, etc.), et ils ont tous échoué (ie quand j'ai essayé d'importer matplotlib.pyplot, j'obtiens ImportError parce qu'il essaie d'importer une dépendance qui manque). J'ai alors étudié comment installer ces dépendances, mais cela m'a juste donné envie d'abandonner en utilisant pip (dans virtualenv) comme une solution d'installation viable pour tout paquet qui a des dépendances de paquets non-Python.

Toute l'expérience m'a ramené ramper vers apt-get / synaptic (c'est-à-dire le gestionnaire de paquets Ubuntu) pour installer un logiciel comme matplotlib. Cela a fonctionné parfaitement. Bien sûr, cela signifie que vous ne pouvez installer que dans les répertoires de votre système, sans aucune utilité virtuelle, et que vous êtes bloqué avec les versions distribuées par Ubuntu, ce qui peut être loin derrière la version actuelle ...

Question

J'ai besoin de votre aide à propos de matplotlib. Oui, je n'ai pas oublié d'appeler le pyplot.show ().

$ ipython --pylab

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

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

p.show()

Il n'y a rien à se passer. Aucun message d'erreur Aucune nouvelle fenêtre Rien. 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



Veillez à activer ce script de démarrage: (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 graphique interactif




Pour référence future,

J'ai rencontré le même problème - pylab ne s'affichait pas sous ipython. Le problème a été résolu en modifiant le fichier de configuration d'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




J'ai dû installer matplotlib de la source pour que cela fonctionne. Les instructions clés (extraites 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 le dit @unutbu, j'ai juste rencontré beaucoup plus de problèmes avec tous les différents backends ne fonctionnant pas non plus.




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



Pour moi, le problème se produit si je crée simplement un fichier matplotlibrc vide sous ~/.matplotlib sur macOS. L'ajout de "backend: macosx" corrige le problème.

Je pense que c'est un bug: si le backend n'est pas spécifié dans mon matplotlibrc il devrait prendre la valeur par défaut.




Related