ggplot: Jak zwiększyć odstępy między wykresami fasetowymi?

114

Mam kilka fasetowanych histogramów (uzyskanych za pomocą poniższego polecenia), które są ładnie wykreślone jeden pod drugim. Chciałbym zwiększyć odstępy między nimi jednak są ciasne.

Spojrzałem na dokument, ale nie znalazłem parametru do tego.

qplot (Happiness.Level, Number.of.Answers, data=mydata, geom="histogram") + facet_grid (Location ~ .) 
Wishihadabettername
źródło
Boczny komentarz, że znalazłem inny sposób podejścia do tego (użyłem faced_wrap zamiast facet_grid, a wynikowy wykres wygląda lepiej). Nadal jestem zainteresowany, czy istnieje sposób na rozwiązanie pierwotnego pytania.
Wishihadabettername
2
Wypróbuj theme_get (), aby uzyskać mnóstwo ukrytych opcji, które możesz dostosować za pomocą opts ()
Brandon Bertelsen

Odpowiedzi:

169

Użyj funkcji motywu :

library(grid)

p + theme(panel.spacing = unit(2, "lines"))

Zobacz także tutaj: Wykresy cięcia generowane przez ggplot2

rcs
źródło
8
Z powodu kolejnej aktualizacji zaklęcie jest teraztheme(panel.margin = unit(2, "lines"))
David J. Harris
11
Aktualizacja - jest teraztheme(panel.spacing = unit(1, "lines"))
pan ecos
Działa to bez gridpakietu. Z mojego doświadczenia wynika, że ​​etykiety x dwóch wykresów obok siebie często nachodzą na siebie (największa etykieta po lewej stronie i najmniejsza etykieta po prawej stronie). Jednym z rozwiązań, które można naprawić, jest ggsaveużycie większej szerokości niż domyślna. Ale uważam, że jest theme(panel.spacing = unit(1, "lines"))ładniejszy, ponieważ działa również w wyskakującym oknie wykresu.
PatrickT