Acabo de instalar matplotlib en Ubuntu 9.10 usando el sistema de paquetes synaptic. Sin embargo, cuando pruebo el siguiente ejemplo simple
>>> from pylab import plot;
>>> plot([1,2,3],[1,2,3])
[<matplotlib.lines.Line2D object at 0x9aa78ec>]
No obtengo una ventana de trama. ¿Alguna idea sobre cómo hacer que se muestre la ventana de la trama?
show()
.Respuestas:
Puedes escribir
import pylab pylab.show()
o mejor, use
ipython -pylab
.Dado que
pylab
ya no se recomienda el uso de , la solución hoy en día seríaimport matplotlib.pyplot as plt plt.plot([1,2,3]) plt.show()
fuente
pylab.show()
funciona pero bloquea (es necesario cerrar la ventana).Una solución mucho más conveniente es hacerlo
pylab.ion()
(modo interactivo activado) al comenzar: todos lospyplot.*
comandos (los equivalentes de pylab) muestran su gráfico inmediatamente. Más información sobre el modo interactivoPuede encontrar en el sitio web oficial.También utilizo en segundo lugar el aún más conveniente
ipython -pylab
(--pylab
, en versiones más nuevas), que le permite omitir lafrom … import …
parte (también%pylab
funciona en versiones más recientes de IPython).fuente
pylab.show()
primero para incluso abrir una figura.Prueba esto:
import matplotlib matplotlib.use('TkAgg')
ANTES de importar pylab
fuente
El siguiente fragmento de código funciona tanto en Eclipse como en el shell de Python:
import numpy as np import matplotlib.pyplot as plt # Come up with x and y x = np.arange(0, 5, 0.1) y = np.sin(x) # Just print x and y for fun print x print y # Plot the x and y and you are supposed to see a sine curve plt.plot(x, y) # Without the line below, the figure won't show plt.show()
fuente
¿Aparecen errores? Esto podría deberse a que no se ha configurado el backend. Puede configurarlo desde el intérprete de Python o desde un archivo de configuración (
.matplotlib/matplotlibrc
) en su directorio de inicio.Para configurar el backend en código, puede hacer
import matplotlib matplotlib.use('Agg')
donde 'Agg' es el nombre del backend. Los backends que estén presentes dependen de su instalación y sistema operativo.
http://matplotlib.sourceforge.net/faq/installing_faq.html#backends
http://matplotlib.org/users/customizing.html
fuente
.matplotlib/matplotlibrc
abackend: Agg
. Entonces no tienes que hacerlo explícitamenteuse
cada vez :)Modern IPython usa el
--matplotlib
argumento " " con un parámetro de backend opcional. El valor predeterminado es "automático", que suele ser lo suficientemente bueno en Mac y Windows. No lo he probado en Ubuntu ni en ninguna otra distribución de Linux, pero espero que funcione.fuente
Si encuentra un problema en el que
pylab.show()
congela la ventana de IPython (esto puede ser específico de Mac OS X; no estoy seguro), puede cmd-c en la ventana de IPython, cambiar a la ventana de trazado y se romperá.Aparentemente, las llamadas futuras a
pylab.show()
no congelarán la ventana de IPython, solo la primera llamada. Desafortunadamente, descubrí que el comportamiento de la ventana del gráfico / interacciones con show () cambia cada vez que reinstalo matplotlib, por lo que es posible que esta solución no siempre se mantenga.fuente
Si está iniciando IPython con la
--pylab
opción, no debería necesitar llamarshow()
odraw()
. Prueba esto:fuente
--pylab
ya no trabaja para Jupyter , pero afortunadamente podemos añadir un pellizco en elipython_config.py
archivo para obtener ambospylab
, así comoautoreload
funcionalidades.c.InteractiveShellApp.extensions = ['autoreload', 'pylab'] c.InteractiveShellApp.exec_lines = ['%autoreload 2', '%pylab']
fuente
Si es usuario de Anaconda y Spyder, la mejor solución para usted es que:
Herramientas -> Preferencias -> Consola Ipython -> Sección gráfica
Luego, en la sección Soporte para gráficos (Matplotlib) :
seleccione dos opciones disponibles
y en el backend de gráficos :
seleccione Automático
fuente
Otra posibilidad al utilizar easy_install es que necesita la versión más reciente de matplotlib. Tratar:
import pkg_resources pkg_resources.require("matplotlib")
antes de importar matplotlib o cualquiera de sus módulos.
fuente
matplotlib
esté instalado, no afecta la forma en que se realiza el manejo de la ventana.