I grafici realizzati con RPY inviati a X11 si chiudono improvvisamente?
Domanda
Sto usando RPY2 per realizzare alcune trame.La trama si presenta ma la finestra X11 scompare immediatamente.
Tutto ciò che sto digitando è il seguente, dove ccfs è una matrice di dati
.
import rpy2.robjects as robjects
r = robjects.r
pca = r.princomp(CCFS)
r.plot(pca,main="Eigenvalues")
r.biplot(pca,main="biplot")
r['dev.off']() #*EDIT* the problem persists even if I remove this line.
Sto non riuscendo a includere qualcosa?So che c'è qualcosa da tracciare perché Princomp restituisce un elenco che non è nullo.
Soluzione
Aggiungi
input() # for Python3
# raw_input() # for Python2
.
fino alla fine dello script per evitare che il programma finisca fino a quando l'utente preme ENTER.
Altri suggerimenti
Come Zack ha sottolineato la chiamata dev.off()
su dispositivi grafici interattivi, causare il chiusura del dispositivo (e ciò che viene visualizzato per scomparire).D'altra parte, la chiusura dei dispositivi non interattivi è per lo più necessaria prima che la trama possa essere controllata (vedere Documentazione di RPY2 sui dispositivi grafici ).
Sto indovinando che il tuo codice Python sia chiamato come programma / script standalone piuttosto che parte di una sessione di Python interattiva.In altre parole, sto sospetto che tu stia avendo qualcosa come python myscript.py
in una shell (il contenuto di myscript.py
è il tuo codice sopra);Quando lo script termina che l'incorporato è ovviamente terminato, prendendo con sé la trama interattiva.Questo è probabile anche quello che sta pensando Zack.Prova python -i myscript.py
, e poi una volta nella console Python import sys; sys.exit(0)
per vedere che in uscita Python significa chiudere i dispositivi interattivi di chiusura.