¿Por qué R tiene problemas para representar gráficos en un archivo PNG?

¿Por qué R tiene problemas para representar gráficos en un archivo PNG?

Estoy intentando que R realice algunos trazados muy básicos y cosas así en UNIX, pero recibo un error extraño relacionado con X11, cuando, por lo que sé, ni siquiera necesito X11.

Tengo un nombre de matriz dy quiero guardar una imagen de un mapa de calor de esta matriz sin mostrar la imagen (ya que no quiero usar X11). Aquí está mi código:

png(file="my_image.png")
heatmap(d)
dev.off()

El problema es que recibo el siguiente error:

Error in X11(paste("png::", filename, sep = ""), g$width, g$height, pointsize,  :
  unable to start device PNG

Además: Mensaje de advertencia:

In png(file = "interative_hen.png") :
  unable to open connection to X11 display ''

No sé que esto está sucediendo, ya que no veo cómo R necesita X11, e incluso si lo necesita, X11 está instalado y funciona correctamente para cada aplicación con la que lo probé.

Respuesta1

Primero, verifique si la versión que Restá utilizando tiene capacidades PNG. Puede hacer esto llamando a la capabilities()función desde un Rmensaje. Debería imprimir una lista similar 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 

Si ve FALSEdebajo png, entonces necesita volver a compilar manualmente Rcon soporte PNG explícito. Siempre que haya instalado las dependencias de compilación necesarias, el proceso de compilación debería habilitar automáticamente las capacidades PNG.


Por último, suponiendo que no haya ningún servidor X local ejecutándose en el clúster, es posible que su cliente SSH no esté configurado correctamente; específicamente, asegúrese de haber habilitado el reenvío X11 (usando los indicadores -Xo -Ysi está usando una sshherramienta similar a UNIX). Alternativamente, puedes intentar usar un framebuffer virtual.

Consulte esta pregunta de desbordamiento de pila para obtener más detalles:Cómo ejecutar R en un servidor sin X11 y evitar dependencias rotas.

información relacionada