scripts script programa paso hacer ejemplos ejecutar desde como comando linux r x11

linux - programa - Cómo ejecutar scripts R en servidores sin X11



script linux ejemplos (2)

Respondí a esto una vez antes: no puedo hacer que un programa que espera que X11 se olvide, pero puedes usar el framebuffer virtual para "fingir" que X11 está presente.

Así que vea esta antigua pregunta de SO para obtener más detalles y un ejemplo.

Quiero ejecutar scripts R y guardar los gráficos usando png() . X11 no es compatible con los servidores Unix y aparece el siguiente mensaje de error:

Error in X11(paste("png::", filename, sep = ""), g$width, g$height, pointsize, : unable to start device PNG Calls: png In addition: Warning message: In png("test.png", width = 900, height = 400) : unable to open connection to X11 display '''' Execution halted

Configurando variables de entorno

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

o

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

En los scripts R no se solucionó el problema.

Este ejemplo de código produce el error anterior:

library(ggplot2) library(grid) # Some data df = data.frame(x = c(1.2,5,3,5.3,2,9,4,6,8,0), y = c(1.5,6,2.5,5.1,2.3,8.7,4.1,6,8,0)) # Base plot p <- ggplot(df, aes(x,y)) + geom_point() + scale_x_continuous(limits = c(0, 8), expand = c(0,0)) + scale_y_continuous(limits = c(0, 8), expand = c(0,0)) + geom_smooth(method="lm", se=FALSE, formula=y~x, aes(colour="2"), show_guide=TRUE, fill=NA, size=1.2) + geom_vline(xintercept = 3) + geom_vline(xintercept = 7) + opts(plot.margin = unit(c(1,1,4,1), "lines")) # Create the text Grobs Text1 = textGrob("Part 1") Text2 = textGrob("Part 2") Text3 = textGrob("Part 3") # Add the annotations # Segment 1 p1 = p + annotation_custom(grob = linesGrob(), xmin = 0, xmax = 0, ymin = -1, ymax = -.75) + annotation_custom(grob = linesGrob(), xmin = 0, xmax = 3, ymin = -1, ymax = -1) + annotation_custom(grob = linesGrob(), xmin = 3, xmax = 3, ymin = -1, ymax = -.75) + annotation_custom(grob = Text1, xmin = 0, xmax = 3, ymin = -1.25, ymax = -1.25) # Segment 2 p1 = p1 + annotation_custom(grob = linesGrob(), xmin = 3, xmax = 7, ymin = -1, ymax = -1) + annotation_custom(grob = linesGrob(), xmin = 7, xmax = 7, ymin = -1, ymax = -.75) + annotation_custom(grob = Text2, xmin = 3, xmax = 7, ymin = -1.25, ymax = -1.25) # Segment 3 p1 = p1 + annotation_custom(grob = linesGrob(), xmin = 7, xmax = 8, ymin = -1, ymax = -1) + annotation_custom(grob = linesGrob(), xmin = 8, xmax = 8, ymin = -1, ymax = -.75) + annotation_custom(grob = Text3, xmin = 7, xmax = 8, ymin = -1.25, ymax = -1.25) png("test.png", width=900, height=400) # Code to override clipping gt <- ggplot_gtable(ggplot_build(p1)) gt$layout$clip[gt$layout$name=="panel"] <- "off" grid.draw(gt) dev.off()

El resultado de las capabilities() es:

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 FALSE TRUE TRUE FALSE FALSE

Estoy ejecutando los scripts a través de un motor de rejilla solar.


Si está usando R 3.0, pruebe las options(bitmapType=''cairo'') que funcionó para mí