
Ich versuche, mit R einige ganz einfache Plot-Aufgaben und ähnliches unter UNIX auszuführen, erhalte jedoch eine seltsame Fehlermeldung im Zusammenhang mit X11, obwohl ich, soweit ich weiß, X11 gar nicht benötige.
Ich habe einen Matrixnamen d
und möchte ein Bild einer Heatmap dieser Matrix speichern, ohne das Bild jemals tatsächlich anzuzeigen (da ich X11 nicht verwenden möchte). Hier ist mein Code:
png(file="my_image.png")
heatmap(d)
dev.off()
Das Problem ist, dass ich die folgende Fehlermeldung erhalte:
Error in X11(paste("png::", filename, sep = ""), g$width, g$height, pointsize, :
unable to start device PNG
Zusätzlich: Warnmeldung:
In png(file = "interative_hen.png") :
unable to open connection to X11 display ''
Ich weiß nicht, ob das passiert, da ich nicht sehe, warum R X11 benötigt, und selbst wenn, ist X11 installiert und funktioniert ordnungsgemäß für jede Anwendung, mit der ich es getestet habe.
Antwort1
Überprüfen Sie zunächst, ob die von R
Ihnen verwendete Version PNG-fähig ist. Sie können dies tun, indem Sie die capabilities()
Funktion von einer R
Eingabeaufforderung aus aufrufen. Sie sollte eine Liste ähnlich der folgenden ausgeben:
> capabilities()
jpeg png tiff tcltk X11 aqua http/ftp sockets
FALSE FALSE FALSE TRUE FALSE FALSE TRUE TRUE
libxml fifo cledit iconv NLS profmem cairo
TRUE TRUE TRUE TRUE TRUE FALSE FALSE
Wenn Sie FALSE
unter sehen png
, müssen Sie manuell R
mit expliziter PNG-Unterstützung neu kompilieren. Sofern Sie die erforderlichen Build-Abhängigkeiten installiert haben, sollte der Build-Prozess PNG-Funktionen automatisch aktivieren.
Und schließlich: Vorausgesetzt, auf dem Cluster läuft kein lokaler X-Server, ist Ihr SSH-Client möglicherweise nicht richtig konfiguriert. Stellen Sie insbesondere sicher, dass Sie die X11-Weiterleitung aktiviert haben (mit den Flags -X
oder -Y
, wenn Sie ein UNIX-ähnliches Tool verwenden ssh
). Alternativ können Sie versuchen, einen virtuellen Framebuffer zu verwenden.
Weitere Einzelheiten finden Sie in dieser Stack Overflow-Frage:So führen Sie R auf einem Server ohne X11 aus und vermeiden fehlerhafte Abhängigkeiten.