macos - tutorial - superponer graficas en r ggplot
problema al guardar el archivo pdf en R con ggplot2 (4)
El problema es que no cierra el dispositivo pdf()
con dev.off()
dat <- data.frame(A = 1:10, B = runif(10))
require(ggplot2)
pdf("ggplot1.pdf")
ggplot(dat, aes(x = A, y = B)) + geom_point()
dev.off()
Eso funciona, como lo hace:
ggplot(dat, aes(x = A, y = B)) + geom_point()
ggsave("ggplot1.pdf")
Pero no mezcles los dos.
Me encuentro con un problema extraño. Puedo crear y guardar archivos PDF usando R / ggplot2 y verlos mientras se ejecuta la Consola R. Tan pronto como salga de la consola R, la Vista previa en Mac OS X ya no mostrará el PDF. Pude guardar archivos .png sin problemas, pero por razones que escapan a mi control, debo guardarlos en archivos PDF. El código que estoy usando para guardar es el siguiente:
pdfFile <-c("/Users/adam/mock/dir/structure.pdf")
pdf(pdfFile)
ggplot(y=count,data=allCombined, aes(x=sequenceName, fill=factor(subClass))) + geom_bar()
ggsave(pdfFile)
¿Alguien ha encontrado un problema similar? Si es así, ¿qué debo hacer para solucionarlo? Muchas gracias por tu tiempo.
Está en las preguntas más frecuentes de R, necesita una print()
alrededor de su llamada a ggplot()
y también debe cerrar el dispositivo de trazado con dev.off()
, es decir, intente
pdfFile <-c("/Users/adam/mock/dir/structure.pdf")
pdf(pdfFile)
ggplot(y=count,data=allCombined,aes(x=sequenceName,fill=factor(subClass)))
+ geom_bar()
dev.off()
Editar: estaba a la mitad de la derecha en el dev.off()
, al parecer, no se necesitaba la print()
. La respuesta de Gavin tiene más.
También puede cambiar el nombre de archivo de su diagrama en pdf dentro de ggsave si desea llamarlo de otra forma que no sea "ggplot1" o cualquier otro nombre de objeto conciso que elija; solo dale el nombre del archivo primero y luego cuéntale a qué diagrama te estás refiriendo, por ejemplo:
a <- ggplot(dat, aes(x = A, y = B)) + geom_point()
ggsave("Structure.pdf",plot=a)
La siguiente trama
pdf("test.pdf")
p <- qplot(hp, mpg, data=mtcars, color=am,
xlab="Horsepower", ylab="Miles per Gallon", geom="point")
p
dev.off()
funciona en la consola pero no en una función o cuando lo fuente desde un archivo.
myfunc <- function() {
p <- qplot(hp, mpg, data=mtcars, color=am,
xlab="Horsepower", ylab="Miles per Gallon", geom="point")
p
}
pdf("test.pdf")
myfunc()
dev.off()
Producirá un archivo pdf corrupto y la forma de solucionarlo usaremos
print(p)
dentro de una función.
En una consola. "p" se imprime automáticamente pero no en una función o cuando se obtiene el archivo.