Matplotlib trame non visualizzazione in sublimetext

Ho recentemente iniziato a utilizzare sublimetext 2, però ho notato oggi che il plt.show() funzione non sembra funzionare quando viene eseguito all’interno di sublimetext.

Se, per esempio, ho creato il seguente script:

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

L’esecuzione di questo IDLE genera una trama, tuttavia l’uso di sublimetext non viene generato alcun output. Si continua a ‘pensare’, fino a terminare la python.exe processo dopo che [Finito] è uscita.

Ho frainteso come sublimetext è destinato a essere utilizzato?

Grazie.

Come si esegue lo script in Sublime Text? Quale piattaforma?
Io non sono sicuro di cosa intendi, ho semplicemente premere f5.
Sto usando il Sublime Text 3 build 3156 su Windows (e la versione 3143 su CentOS). Il codice funziona bene su entrambi i sistemi. L’immagine di windows viene visualizzato dopo aver premuto Ctrl+B per eseguire lo script.

OriginaleL’autore iRoygbiv | 2012-05-31

5 Replies
  1. 14

    La mia ipotesi è che il Sublime Text 2 lancia il tuo codice nel proprio ambiente, e solo in trappole e visualizza l’output della console. Lo stesso problema esiste quando si utilizza GUI, come wxPython.

    Un altro per aggirare il problema è aprire il prompt dei comandi e lanciare manualmente (python file.py).

    EDIT: Qui afferma che “Sotto Windows, interfacce grafiche sono soppressi.”

    EDIT 2: Qui elenca un modo per risolvere, a destra in fondo alla pagina.

    Grazie mille! Questo ha funzionato per me, dopo ore di ricerche su Google!

    OriginaleL’autore Gareth Webber

  2. 12

    Modo più appropriato è quello di aggiungere solo una riga di Python di default costruire file di sistema:

    "shell": true

    O fare altri Python sistema di generazione con:

    {
        "cmd": ["python", "-u", "$file"],
        "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
        "selector": "source.python",
        "shell": true
    }
    Funziona per me, ma in windows ottengo il seguente messaggio: CMD.EXE è stato avviato con il precedente percorso della directory corrente. I percorsi UNC non sono supportati. Inadempiente alla directory di Windows. Il problema ora è la volta del costruire si blocca l’editor
    Per windows il file variabile deve essere all’interno di parentesi quadre come: “cmd”: [“python”, “-u”, “${file}”], in questo modo si evita di ottenere il percorso UNC avviso.

    OriginaleL’autore theta

  3. 9

    Ho provato theta risposta come suggerito sopra. Funziona benissimo. Nel caso In cui la console si apre e si chiude istantaneamente come l’esecuzione di python file direttamente da esplora file, basta aggiungere la seguente riga alla fine:

    matplotlib.pyplot.show('hold')

    È il mio primo tempo a rispondere qui. Scusate se non ho rispettare il formato di risposta.

    questa dovrebbe essere la risposta giusta. Mantiene trama finestra, senza modificare ambiente dev
    Questa è una risposta perfetta, grazie!
    Questa è la giusta soluzione!

    OriginaleL’autore bala83

  4. 2

    Nota in sublime text 3 (con anaconda pacchetto installato)

    È necessario aggiungere una versione personalizzata del sistema come theta detto:

    prima di aggiungere una cartella denominata python in \path\to\Sublime Text Build XXXX\Data\Packages

    poi mettere un file denominato python.sublime-build in quella cartella.

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

    e ricordarsi di aggiungere plt.show() come Roald detto.

    plt.imshow(image)
    plt.show()

    Demo:

    Matplotlib trame non visualizzazione in sublimetext

    OriginaleL’autore 応振强

  5. 1

    Ho avuto un simile problema con Ubuntu. Stavo cercando di tracciare una pandas DataFrame come questo:

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

    Ma la trama non si è presentato. Si scopre che è necessario fare plt.show(), come discusso qui.

    grazie @Roald 🙂

    OriginaleL’autore Roald

Lascia un commento