2015-04-17 11 views
8

Mam obiekt wykresu siatki g.Jak zapisać wykres siatki w R?

class(g) 
"gtable" "grob" "gDesc" 

Mogę użyć grid.draw (g) do narysowania wykresu. Jednak nie mogę wymyślić sposób, aby zapisać fabułę do pliku PDF.

Próbowałem:

ggsave(g, file="plot.png") 

Ale widocznie ggsave nie działa na takim obiekcie.

Oto przykład z grid.draw stronie pomocy:

grid.newpage() 
## Create a graphical object, but don't draw it 
l <- linesGrob() 
## Draw it 
grid.draw(l) 

Drawing działa dobrze, ale zapisywanie/drukowanie powoduje ten problem.

Jakiekolwiek obejście tego problemu? Dzięki!

+0

Spróbuj 'png (" myfine.png "); print (g); dev.off() '. Naprawdę pomógłby mieć [odtwarzalny przykład] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). 'ggsave' jest dla obiektów' ggplot2', które mają klasę 'gg' lub' ggplot'. Wyżej wymienione klasy są dla obiektów 'grid' niższego poziomu. (ggplot jest zbudowany na siatce, ale to nie to samo) – MrFlick

+0

Dzięki! Ale wydaje się, że to nie działa. Najprostszym przykładem jest strona pomocy grid.draw: grid.newpage(); l <- linesGrob(); grid.draw (l) – xiaoxiao87

+3

Z zamieszczonego przykładu, który obiekt ma klasę "gtable"? Czy odnosisz się do "l"? 'png (" myfile.png "); spisek (l); dev.off() 'wydaje się działać dobrze dla mnie. Nie rozumiem, co nie działa dla ciebie. – MrFlick

Odpowiedz

8

To właśnie odpowiedział MrFlick, ale w przypadku plików PDF (o co prosiłeś w pytaniu).

## Initiate writing to PDF file 
pdf("path/to/file/PDFofG.pdf", height = 11, width = 8.5, paper = "letter") 

## Create a graphical object g here 
g # print it 

## Stop writing to the PDF file 
dev.off() 
3

Warto może dodać, że zaktualizowana wersja ggsave facilites żądaną eksport.

Pakiety

# Load 
lapply(c("ggplot2", 
     "gridExtra"), 
     require, 
     character.only = TRUE) 
sessionInfo() 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] gridExtra_2.2.1 ggplot2_2.1.0 

loaded via a namespace (and not attached): 
[1] colorspace_1.2-6 grid_3.1.1  gtable_0.2.0  munsell_0.4.3 plyr_1.8.3  Rcpp_0.12.6  
[7] scales_0.4.0  tools_3.1.1 

przygotowanie Graph i eksport

a <- ggplot(data = mtcars) + 
    geom_point(aes(x = mpg, y = cyl)) 

b <- ggplot(data = mtcars) + 
    geom_line(aes(x = wt, y = vs)) 

# grid 
gridAB <- grid.arrange(a, b) 
# Export 
ggsave(filename="ab.pdf", plot=gridAB) 

Klasa

> class(gridAB) 
[1] "gtable" "gTree" "grob" "gDesc" 

Podgląd

Results

Powiązane problemy