2012-05-31 15 views
11

Recientemente comencé a usar sublimetext 2, sin embargo, hoy noté que la función plt.show() no parece funcionar cuando se ejecuta dentro de sublimetext.Gráficos de Matplotlib que no se muestran en sublimetext

Si por ejemplo se crea el siguiente script:

import matplotlib.pyplot as plt 
plt.plot([1,2,3,4]) 
plt.show() 

La ejecución de este con IDLE genera una parcela, sin embargo el uso de Sublime Text se genera ninguna salida. Simplemente sigue 'pensando' hasta que finalizo el proceso python.exe después del cual [Finalizado] sale.

¿He entendido mal cómo se debe utilizar el sublimetext?

Gracias.

+0

¿Cómo estás ejecutando la secuencia de comandos en Sublime Text? ¿En qué plataforma estás? – noio

+0

No estoy seguro de lo que quieres decir, simplemente presiono f5. – iRoygbiv

+0

Estoy usando Sublime Text 3 build 3156 en Windows (y la versión 3143 en CentOS). El código funciona bien en ambos sistemas. La ventana de imagen se muestra después de presionar 'Ctrl + B' para ejecutar el script. – jdhao

Respuesta

13

Supongo que Sublime Text 2 inicia su código en su propio entorno, y solo captura y muestra la salida de la consola. El mismo problema existe cuando se utilizan GUI, como wxPython.

Otra alternativa es abrir el símbolo del sistema y ejecutarlo manualmente (python file.py).

EDIT:Here indica que "En Windows, las interfaces gráficas de usuario están supresadas".

EDITAR 2:Here enumera una manera de solucionarlo, en la parte inferior de la página.

+0

¡Muchas gracias! ¡Esto funcionó para mí después de horas de Google! – Fractaly

10

manera más apropiada es simplemente añadir una línea en el archivo de sistema de construcción de Python por defecto:

"shell": true 

O hacer que el sistema Python acumulación adicional:

{ 
    "cmd": ["python", "-u", "$file"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "selector": "source.python", 
    "shell": true 
} 
5

Probé la respuesta de theta como se sugirió anteriormente . Funciona bien. En caso de que la consola se abre y se cierra al instante como el funcionamiento de los archivos de Python directamente desde el explorador de archivos, sólo tiene que añadir la siguiente línea al final:

matplotlib.pyplot.show('hold') 

Es mi primera vez aquí contestadores. Lo siento si no cumplí con el formato de respuesta.

+2

esta debería ser la respuesta correcta. Mantiene la ventana de diagrama arriba, sin modificar el entorno de desarrollo – nazikus

1

Tuve un problema similar en Ubuntu. Yo estaba tratando de trazar un pandasDataFrame así:

df = pandas.DataFrame([*range(5)]) 
df.plot() 

Pero la trama no se presentó. Resulta que debe hacer plt.show(), como se describe here.

+0

gracias @Roald :) –

0

nota en el texto sublime 3 (con el paquete anaconda instalado)

es necesario agregar un sistema de generación personalizada como theta dijo, por:

primero agregar una carpeta con el nombre de pitón en \path\to\Sublime Text Build XXXX\Data\Packages

entonces ponga un archivo llamado python.sublime-build en esa carpeta.

{ 
    "cmd": ["python", "-u", "$file"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "selector": "source.python", 
    "shell": true 
} 

y recuerde agregar plt.show() como Roald dijo.

plt.imshow(image) 
plt.show() 

Demostración:

enter image description here

Cuestiones relacionadas