
Estou tentando fazer com que R faça algumas plotagens muito básicas e coisas assim no UNIX, mas estou recebendo um erro estranho relacionado ao X11, quando, pelo que posso dizer, nem estou precisando do X11.
Eu tenho um nome de matriz d
e quero salvar uma imagem de um mapa de calor dessa matriz sem nunca exibir a imagem (já que não quero usar o X11). Aqui está o meu código:
png(file="my_image.png")
heatmap(d)
dev.off()
O problema é que estou recebendo o seguinte erro:
Error in X11(paste("png::", filename, sep = ""), g$width, g$height, pointsize, :
unable to start device PNG
Além disso: Mensagem de aviso:
In png(file = "interative_hen.png") :
unable to open connection to X11 display ''
Não sei se isso está acontecendo, pois não vejo como o R está precisando do X11 e, mesmo que precise, o X11 está instalado e funcionando corretamente para todos os aplicativos com os quais testei.
Responder1
Primeiro, verifique se a versão que R
você está usando possui recursos de PNG. Você pode fazer isso chamando a capabilities()
função em um R
prompt. Deve imprimir uma lista semelhante a:
> 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
Se você vir FALSE
abaixo png
, será necessário recompilar manualmente R
com suporte PNG explícito. Contanto que você tenha instalado as dependências de compilação necessárias, o processo de compilação deverá ativar automaticamente os recursos do PNG.
Por último, supondo que não haja nenhum servidor X local em execução no cluster, seu cliente SSH pode não estar configurado corretamente - especificamente, certifique-se de ter habilitado o encaminhamento X11 (usando os sinalizadores -X
ou -Y
se estiver usando uma ssh
ferramenta semelhante ao UNIX). Alternativamente, você pode tentar usar um framebuffer virtual.
Consulte esta pergunta do Stack Overflow para obter detalhes:Como executar R em um servidor sem X11 e evitar dependências quebradas.