Pycharm no muestra la trama de el código siguiente:

import pandas as pd
import numpy as np
import matplotlib as plt

ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2000', periods=1000))

ts = ts.cumsum()    
ts.plot()

Lo que pasa es que aparece una ventana de menos de un segundo, y luego desaparece de nuevo.

El uso de la Pyzo IEP IDE (usando el mismo intérprete) en el mismo código que el gráfico muestra como se esperaba.

…Así que el problema debe ser con algunos ajustes en Pycharm.
He intentado utilizar tanto python.exe y pythonw.exe como intérprete de ambos con los mismos resultados.

Este es mi sys_info:

C:\pyzo2014a\pythonw.exe -u C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pydev\pydevconsole.py 57315 57316
PyDev console: using IPython 2.1.0import sys; print('Python %s on %s' % (sys.version, sys.platform))
Python 3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, 13:02:30) [MSC v.1600 64 bit (AMD64)] on win32
sys.path.extend(['C:\Users\Rasmus\PycharmProjects\untitled2'])
In[3]: import IPython
print(IPython.sys_info())
{'commit_hash': '681fd77',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': 'C:\pyzo2014a\lib\site-packages\IPython',
 'ipython_version': '2.1.0',
 'os_name': 'nt',
 'platform': 'Windows-8-6.2.9200',
 'sys_executable': 'C:\pyzo2014a\pythonw.exe',
 'sys_platform': 'win32',
 'sys_version': '3.4.1 |Continuum Analytics, Inc.| (default, May 19 2014, '
                '13:02:30) [MSC v.1600 64 bit (AMD64)]'}
  • ¿plt.pyplot.show() trabajo?
  • No. Cuando se ejecuta exactamente ‘plt.pyplot.show()’ no funciona. Debo escribir algo más en lugar de ‘pyplot’? (noob aquí).
  • ¿qué sucede cuando se ejecuta el código en pycharm?
  • Cuando ejecuto el archivo ocurre lo mismo: una ventana rápidamente aparece y desaparece, la consola de la impresión: Proceso de acabado con código de salida 0. Cuando me envía a la consola de la ventana aparece y permanece, pero nada se dibuja en la ventana, es sólo blanco. La etiqueta de la ventana «de la Figura 1 (No Responde)»
  • Usted debe agregar matplotlib.pyplot a visulize ella.Referencia : stackoverflow.com/a/29042575/4989929
  • AttributeError: módulo » matplotlib.pyplot’ no tiene ningún atributo ‘pyplot’
  • esto funcionó para mí: de matplotlib de importación pyplot como plt y, a continuación, plt.show()
  • Si se ejecuta el código dentro de una IDE, uso plt.waitforbuttonpress(). La figura emergente y espera a que el usuario haga clic en la nueva ventana. Sólo entonces se reanuda el programa y se ejecuta el resto del código.

23 Comentarios

  1. 76

    Solo uso

    plt.show()

    Se hace el truco, pero no sé por qué.
    pero para mí, es un trabajo
    sólo para uso

    plt.show()

    usted verá una ventana emergente allí podrá encontrar parcelas

    • Es realmente sorprendente – esto funcionó para mí, y ninguno de los otros. Lo que es sorprendente es que, yo no tenía necesidad de plt.show() en Jupyter Notebook, no sé por qué el comportamiento es diferente en PyCharm
    • esto funcionó para mí también 🙂
    • mismo aquí. Yo no la necesitamos en Jupyter Notebook
  2. 51

    Me doy cuenta de que esto es viejo, pero pensé que había que aclarar un concepto erróneo de otros viajeros. Configuración de plt.pyplot.isinteractive() a False significa que la trama va a ser dibujado en comandos específicos para dibujar (es decir,plt.pyplot.show()). Configuración de plt.pyplot.isinteractive() a True significa que cada pyplot (plt) comando activará un empate de comandos (es decir,plt.pyplot.show()). Así que lo que estaban más que probable que buscan es plt.pyplot.show() al final de su programa para visualizar el gráfico.

    Como una nota del lado, puede acortar estas declaraciones un poco mediante el siguiente comando importar import matplotlib.pyplot as plt en lugar de matplotlib as plt.

    • La adición de plt.mostrar(bloque=True) hasta el final de mi función es lo que ha funcionado para mí. Gracias por la aclaración. (Python 3.x, PyCharm 2016.1.4, Ubuntu)
    • Esto es lo que funciona para mí (Python 2.7, Pycharm 2016.3, Ubuntu 16.04): «la importación matplotlib.pyplot como plt», entonces la función de trazado de DataFrame como en «corr_data[col].parcela(tipo=»bar», figsize=(8, 5), grid=True, color=»r», title=col)» y antes de salir de la función, «plt.show()»
  3. 33

    Yo tenía el mismo problema. Comprobar si plt.isinteractive() es Cierto. Configuración a ‘False’ ayudó para mí.

    plt.interactive(False)
    • Llamar plt.mostrar(bloque=True) ayudó a mostrar el gráfico de una vez para mí. Pero la consola se bloquea, incluso después de cerrar la ventana de gráficos.
    • plt.interactivo(Falso), lo hizo por mí en PyCharm
    • No tengo Python instalado ya, así que no sé si iba a funcionar para mí, pero ya se trabaja para los demás, voy a aceptar esta respuesta (espero que esto sea correcto de acuerdo a stackoverflow-reglas)
    • esto es extraño….. ajuste a la Verdadera trabajó para mí.
    • La solución correcta es establecer plt.mostrar(bloque=True) como @charlie ha sugerido a continuación. Después de agregar esta línea el valor de la plt.interactivo() de la bandera no tenía relación con la trama que se muestra.
    • Esto no funciona para mí » para cluster_id in range(len(tempx[0])): plt.parcela(tempx, tempy, ‘rx–‘, markersize=8) plt.leyenda(loc=4, framealpha=0.5) plt.interactivo(Falso) plt.mostrar(bloque=True)`

  4. 26

    He probado diferentes soluciones, pero lo que finalmente funcionó para mí fue plt.show(block=True). Usted necesita agregar este comando después de la myDataFrame.plot() comando para que esto surta efecto. Si usted tiene múltiples trama acaba de agregar el comando al final de su código. Esto le permitirá ver todos los datos que están tramando.

    • Esto lo hizo para mí. Debe ser aceptado respuesta. Jugar con el plt.interactivo() no nada
    • Estoy de acuerdo debido a esto ayudó a mí, también. Ajuste el modo interactivo a False y la adición de «MOSTRAR=TRUE» a las variables de entorno no ayuda.
  5. 13

    He encontrado una solución. Esto funcionó para mí:

    import numpy as np
    import matplotlib.pyplot as plt
    
    points = np.arange(-5, 5, 0.01)
    dx, dy = np.meshgrid(points, points)
    z = (np.sin(dx)+np.sin(dy))
    plt.imshow(z)
    plt.colorbar()
    plt.title('plot for sin(x)+sin(y)')
    plt.show()
    • Pero ahora estoy frente a un nuevo problema. Una vez que la trama se genera en una nueva ventana, el nuevo código que he añadido después de la parcela no se ejecuta hasta que cierre la ventana recién abierta.
    • La línea importante que faltaba en la pregunta es plt.show()
  6. 11

    Puedo probar en mi versión de Pycharm (Community Edition 2017.2.2), usted puede necesitar para anunciar tanto plt.interactivo(Falso) y plt.mostrar(bloque=True) como la siguiente:

    import numpy as np
    import matplotlib.pyplot as plt
    
    x = np.linspace(0, 6.28, 100)
    
    plt.plot(x, x**0.5, label='square root')
    plt.plot(x, np.sin(x), label='sinc')
    
    plt.xlabel('x label')
    plt.ylabel('y label')
    
    plt.title("test plot")
    
    plt.legend()
    
    plt.show(block=True)
    plt.interactive(False)
    • siento oír eso. Me parece que también funciona en Pycharm 2017.3 (community edition). Puede intentar utilizar una nueva versión de Pycharm?
    • Hola, Saria, lo siento por eso. Lo pruebo en mi Pycharm 2018.1.2 (community edition) con Ubuntu OS. Funciona también.
  7. 6

    Pronto después de llamar a

    plt.imshow() 

    llamada

    plt.show(block = True)

    Obtendrá la matplotlib emergente con la imagen.

    Este es un bloqueo de camino. Además script no se ejecutará hasta que el pop está cerrado.

    • Esto es lo que yo estaba buscando.
    • Gracias, realmente funciona.
  8. 5

    Con mí, el problema fue el hecho de que matplotlib fue la utilización incorrecta de backend. Estoy usando Debian Jessie.

    En una consola que me hizo el siguiente:

    import matplotlib
    matplotlib.get_backend()

    El resultado fue: ‘global’, mientras que este debe ser «TkAgg’.

    La solución era simple:

    1. Desinstalar matplotlib a través de pip
    2. Instalar las librerías apropiadas: sudo apt-get install tcl-dev tk-dev python-tk python3-tk
    3. Instalar matplotlib a través de pip de nuevo.
  9. 5

    Acaba de agregar plt.pyplot.show(), que estaría bien.

    La mejor solución es deshabilitar SciView.

  10. 3

    He probado en mi versión en PyCharm 2017.1.2. He utilizado interactivo (True) y show (bloque=True).

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    ts = pd.Series(np.random.randn(1000), index=pd.date_range('1//2000',periods=1000))
    ts = ts.cumsum()
    plt.interactive(True)
    ts.plot()
    plt.show(block=True)
  11. 2

    Mi env: macOS & anaconda3

    Esto funciona para mí:

    matplotlib.use('macosx')

    o en modo interactivo:

    matplotlib.use('TkAgg')
    • Agregar esta antes de la importación de matplotlib.pyplot
  12. 1

    Comentario de Modificada fijo, que para mí, matplotlib con pycharm en linux con el GTKagg backend. Con la importación de matplotlib me gustaría recibir el siguiente error:

    >>> import matplotlib as mpl
    
    Backend GTKAgg is interactive backend. Turning interactive mode on.
    Failed to enable GUI event loop integration for 'gtk'

    Cuando tramando algo así:

    from matplotlib import pyplot as plt
    plt.figure()
    plt.plot(1,2)
    plt.show()

    Una figura en la pantalla pop-up, pero no cartas aparecen.
    uso:

    plt.show(block=True)

    muestra el gráfico correctamente.

  13. 1

    En mi caso, yo quería hacer lo siguiente:

        plt.bar(range(len(predictors)), scores)
        plt.xticks(range(len(predictors)), predictors, rotation='vertical')
        plt.show()

    Siguiente una mezcla de las soluciones aquí, mi solución fue añadir antes de que los comandos siguientes:

        matplotlib.get_backend()
        plt.interactive(False)
        plt.figure()

    con la siguiente dos de las importaciones

       import matplotlib
       import matplotlib.pyplot as plt

    Parece que todos los comandos son necesarios en mi caso, con un MBP con ElCapitan y PyCharm 2016.2.3. Saludos!

  14. 1

    Yo era capaz de conseguir una combinación de algunas de las otras sugerencias de trabajo para mí, pero sólo mientras se alterna la plt.interactive(False) a True y de vuelta otra vez.

    plt.interactive(True)
    plt.pyplot.show()

    Este parpadeará hasta el mi maquina. A continuación, ajuste a False permitido para su visualización.

    plt.interactive(False)
    plt.pyplot.show()

    Como se ha señalado también que mi programa no iba a salir hasta que todas las ventanas estaban cerradas. Aquí están algunos detalles en mi actual entorno de ejecución:

    Python version 2.7.6
    Anaconda 1.9.2 (x86_64)
    (default, Jan 10 2014, 11:23:15) 
    [GCC 4.0.1 (Apple Inc. build 5493)]
    Pandas version: 0.13.1
  15. 1

    Ninguna de las anteriores trabajado para mí, pero el siguiente hecho:

    1. Desactivar la casilla de verificación (parcelas de demostración en la ventana de la herramienta) en pycharm settings > Tools > Python Scientific.
    2. He recibido el error No PyQt5 module found. Siguió adelante con la instalación de PyQt5 uso :

      sudo apt-get install python3-pyqt5
  16. 0

    Una propiedad necesidad de establecer para pycharm.

    import matplotlib.pyplot as plt
    
    plt.interactive(False)  #need to set to False
    
    dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False)
    
    plt.show()
  17. 0

    Cambio de la importación:

    import matplotlib.pyplot as plt

    o uso de esta línea:

    plt.pyplot.show()
  18. 0

    Para los que se están ejecutando un script dentro de un IDE (y no trabajo en un ambiente interactivo, como una consola de python o una notebook), he encontrado esto para ser el más intuitivo y la solución más simple:

    plt.imshow(img)
    plt.waitforbuttonpress()

    Muestra la figura y espera hasta que el usuario hace clic en la ventana nueva. Sólo entonces se resume la secuencia de comandos y ejecutar el resto del código.

  19. 0

    Estoy usando Ubuntu y me trató como @Arie dijo el anterior, pero con esta línea sólo en la terminal:

    sudo apt-get install tcl-dev tk-dev python-tk python3-tk

    ¡Y funcionó!

  20. 0

    En Pycharm , a veces la Matplotlib.la trama no se mostrará.

    Así que después de llamar a plt.show() de verificación en el lado derecho de la barra de herramientas para SciView. Dentro de SciView todos los complots generados serán almacenados.

Dejar respuesta

Please enter your comment!
Please enter your name here