Errore in R: impossibile aprire la connessione a X11


9

Ho appena impostato una distribuzione fedora sul mio computer e sto lentamente cercando di imparare a lavorare dalla riga di comando. Stavo testando R, ma per qualche motivo, quando ho provato di nuovo, all'improvviso mi sembra di non essere in grado di tracciare trame. Ottengo l'errore:

> x = 1:5
> y = x^2
> plot(x,y)
No protocol specified
Error in X11(d$display, d$width, d$height, d$pointsize, d$gamma, d$colortype,  : 
  unable to start device X11cairo
In addition: Warning message:
In function (display = "", width, height, pointsize, gamma, bg,  :
  unable to open connection to X11 display ''

e quando controllo le capacità vedo che X11è FALSE:

> capabilities()
No protocol specified
    jpeg      png     tiff    tcltk      X11     aqua http/ftp  sockets 
    TRUE     TRUE     TRUE     TRUE    FALSE    FALSE     TRUE     TRUE 
  libxml     fifo   cledit    iconv      NLS  profmem    cairo 
    TRUE     TRUE     TRUE     TRUE     TRUE    FALSE     TRUE 

Anche se non so nulla sul fatto che siano collegati o no, sembra che X11 dovrebbe essere acceso?

Ovunque ho cercato questa gente sembrava avere questo problema quando lavoravo su una connessione ssh (non ho ancora dato un'occhiata a cosa sia esattamente: $).

Spero che qualcuno che sappia di cosa tratta questo problema possa essere così gentile da spiegarmi il problema e suggerire una soluzione.


1
Prima di avviare R puoi pubblicare l'output diecho $DISPLAY
Karlson il

Questo comando produce ´: 0´
Jóhann

1
Che ne dici di R:Sys.getenv("DISPLAY")
Karlson,

hmm, questo mi dà solo bash: syntax error near unexpected token "DISPLAY" ''
Jóhann

Fai questo: Sys.getenv(DISPLAY)o questo: Sys.getenv('DISPLAY')oppureSys.getenv(c("DISPLAY"))
Karlson,

Risposte:


6

Esistono molti thread correlati al pacchetto Cairo.

Uno di questi menziona il cambiamento nel tipo X11 ma la maggior parte di essi afferma che R non sa cosa sia il display e suggerisce di fare:

Sys.setenv("DISPLAY"=":0.0")

o, su sistemi più vecchi,

Sys.putenv("DISPLAY"=":0.0")

5
Sfortunatamente né questa soluzione, né quella menzionata nell'altro thread sembrano risolvere questo problema. : / Il mio pacchetto insiste anche sul fatto che uso Sys.setenv invece di putenv .. non sai se il suo nuovo comando è diverso?
Jóhann,

3
Sys.putenvè deprecato a favore diSys.setenv
Karlson,

1
Questo ha funzionato la prossima volta che ho provato a usare questo :). Deve essere stato qualcosa di strano con l'ultima sessione
Jóhann,

1

Se non si dispone di alcun server X locale, è possibile installare il server X11 framebuffer virtuale come detto qui :

apt-get install xvfb xauth xfonts-base

Quindi puoi iniziare una nuova istanza come detto qui :

Xvfb :0 -ac -screen 0 1960x2000x24 &

Quindi se la tua R è compilata con l' with-xopzione di configurazione (abilitata per impostazione predefinita), dovresti avere la funzionalità X11 e devi solo dichiararla in R:

Sys.setenv("DISPLAY"=":0")
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.