r cairo

¿Cómo evito que se genere Rplots.pdf?



install cairo (4)

Estoy trabajando con un código R que genera una cantidad de imágenes como archivos png; sin embargo, un archivo Rplots.pdf sigue generando en el directorio de trabajo, ¿hay alguna forma de evitar que esto suceda?

library(Cairo) CairoPNG(file = "graphs.png") nf <- layout(matrix(c(1:8), 2, 4, byrow=T), c(1, 1), c(1, 1, 1, 1), TRUE) for (k in 1:num.k) { plotMatrix(connect.matrix.ordered[k,,], log = F, main = paste("k=", k.vector[k]), sub = paste("Cophenetic coef.=", rho[k]), ylab = "samples", xlab ="samples") } y.range <- c(1 - 2*(1 - min(rho)), 1) plot(k.vector, rho, main ="Cophenetic Coefficient", xlim=c(k.init, k.final), ylim=y.range, xlab = "k", ylab="Cophenetic correlation", type = "n") lines(k.vector, rho, type = "l", col = "black") points(k.vector, rho, pch=22, type = "p", cex = 1.25, bg = "black", col = "black") dev.off()


Aquí está el código fuente de CairoPNG :

function (filename = "Rplot%03d.png", width = 480, height = 480, pointsize = 12, bg = "white", res = NA, ...) { Cairo(width, height, type = "png", file = filename, pointsize = pointsize, bg = bg, ...) }

Esto le indica que CairoPNG toma filename=... como parámetro y lo pasa a Cairo como parámetro de file .

Puedo ver cómo esto puede llevar a confusión, pero el punto es que su llamada a CairoPNG debe ser:

CairoPNG(filename="graphs.png")

A ver si eso funciona ...


Me pregunto si tiene otro comando que abra un dispositivo antes o después del fragmento de código que nos dio. Cuando haya terminado, ejecute dev.cur() para ver si hubo un dispositivo que quedó abierto. Si no, debe devolver el dispositivo nulo.

Estas son algunas formas en que puede volver a crear un Rplots.pdf o un Rplot001.png ; los comandos de layout y par abren un dispositivo si uno no está abierto, y dado que no se ha dado ningún nombre de archivo, utiliza el nombre de archivo predeterminado.

options(device="pdf") layout(1:4) dev.off() options(device="png") par() dev.off()

Tal vez ver que esto suceda aquí le dará una idea de lo que está sucediendo con su código.


Recientemente tuve un problema similar después de actualizar a R-3.0.3 (sí, ¡estamos un poco atrasados!). Resulta que la paleta ("predeterminada") abre un dispositivo ahora, aunque no solía hacerlo.


Sé que este es un post muy antiguo y seguramente el OP lo ha resuelto. Pero me encontré con esta situación similar mientras trabajaba con plotly. La conversión de una salida de ggplot en una salida de trazado generó el error similar de no poder abrir el archivo ''Rplots.pdf''.

Lo resolví simplemente incluyendo:

pdf(NULL)

No estoy seguro de la razón del error, no he podido averiguarlo, pero esta pequeña línea ayudó a eliminar el error y mostrar mis gráficos como esperaría en las combinaciones de gráficos y ggplot.