2016-01-04 13 views
5

Przełączam z ggplot2 1.0.1 i gridExtra 0.9.1 do najnowszych wersji tych pakietów i mam problem z niewielkimi problemami w tej chwili.główny tytuł w grid.arrange lub arranGrob ma szare tło

Jednym z problemów jest tytuł na połączonej działce.

library(ggplot2) 
library(gridExtra) 
df <- data.frame(x=runif(100), y=runif(100)) 
p1 <- ggplot(df, aes(x,y)) + geom_point() 
p2 <- ggplot(df, aes(x,y)) + geom_point() 
a <- arrangeGrob(p1,p1,p2, layout_matrix=rbind(c(1,2),c(1,3)), top='my title') 
plot(a) 
ggsave('a.pdf', a) 

w starszej wersji, parametr nazwano main i musiałem użyć print wykreślić moje grafiki a. Teraz, kiedy zapisuję wykres, wszystko jest w porządku. Ale wykres plot(a) ma jasnoszare tło siatki za my title. W zapisanym pliku pdf tło jest znowu białe.

Próbowałem również użyć grid.arrange, ale nie chcę drukować fabuły bezpośrednio podczas wykonywania. To dlatego stosuję podejście dwuetapowe, zapisując wykres w zmiennej, a następnie plot.

Jak zatem uzyskać białe tło, gdy plot(a)?

Odpowiedz

4

Użyj grid.draw. Metoda plot służy tylko do testowania.

library(grid) 
grid.newpage() 
grid.draw(a) 

resulting plot

+0

hach, to jest to nie bardzo intuicyjny ... Ale ok, to działa w ten sposób. Zalecana jest 'grid.newpage'? A może kiedy go potrzebuję ?! Uwielbiam "starą" możliwość, używając 'print', niestety nie jest to już możliwe. – drmariod

+0

Zgadzam się, że "spisek" jest bardziej intuicyjny. Byłem wykształcony w zakresie używania 'grid.draw' przez baptysty, gdy błędnie zalecałem' plot' jako substytut 'print' po aktualizacji. Potrzebujesz "grid.newpage", jeśli chcesz nową stronę. W przeciwnym razie może to zostać wydrukowane na istniejącym wykresie siatki. – Roland

+2

btw Nie biorę odpowiedzialności za te opcje: 'grid.draw' jest standardową konwencją siatki, podczas gdy fabuła i druk zostały odziedziczone po kratowaniu/ggplot2, ale deweloperzy GTT postanowili zmienić. – baptiste

Powiązane problemy