Jak się zorientowaliście, nie ma na to łatwego rozwiązania, ale często pojawia się ono. Ponieważ tego typu rzeczy są często zadawane, uważam za pomocne wyjaśnienie, dlaczego jest to trudne i sugerują potencjalne rozwiązanie.
Moje doświadczenie jest takie, że ludzie, którzy przychodzą do ggplot2 lub kratowych grafiki zasadniczo rozumieją cel szlifowaniem (lub trellising w siatkowej). Ta funkcja została opracowana z myślą o konkretnym celu: wizualizacja danych w wielu grupach, które mają wspólną skalę wspólną skalę. Pochodzi z czegoś, co nazywa się zasadą małych wielokrotności, za którymi opowiada się Tufte i inni.
Umieszczanie paneli obok siebie o bardzo różnej skali jest czymś, czego unikną eksperci od wizualnych projektów, ponieważ może być w najlepszym przypadku mylące. (Nie krytykuję cię tutaj, tylko wyjaśniam uzasadnienie ...)
Ale, oczywiście, kiedy masz już to wspaniałe narzędzie, nigdy nie wiesz, jak ludzie go wykorzystają. Jest rozciągnięty: żądania przychodzą, aby umożliwić zmianę skal według panelu i ustawić różne aspekty wydruku oddzielnie dla każdego panelu. I tak faceting w ggplot2 został rozszerzony daleko poza pierwotne intencje.
Jedną z konsekwencji jest to, że niektóre rzeczy są trudne do wdrożenia tylko z powodu pierwotnej intencji projektu. Jest to prawdopodobnie jedna z takich sytuacji.
OK, wystarczające wyjaśnienie. Oto moje rozwiązanie.
Sztuką jest rozpoznanie, że użytkownik nie wykreśla wykresów, które mają podziałkę. Dla mnie oznacza to, że nie powinieneś nawet myśleć o używaniu faceting w ogóle. Zamiast zrobić każdą działkę osobno, i ustawić je razem w jednej działki:
library(gridExtra)
p1 <- ggplot(subset(melted.df,variable == 'dollars'),
aes(x = value)) +
facet_wrap(~variable) +
geom_density() +
scale_x_log10(labels = dollar_format())
p2 <- ggplot(subset(melted.df,variable == 'counts'),
aes(x = value)) +
facet_wrap(~variable) +
geom_density()
grid.arrange(p1,p2)
Właśnie domyślić, co geom_*
chcesz użyć, i jestem pewien, że to nie jest tak naprawdę co chciałeś knuć, ale przynajmniej ilustruje zasadę.
Nie jest to łatwe, myślę ... –
Tak. Shucks. Właśnie natknąłem się na ten link, gdy ktoś miał podobny problem: http://comments.gmane.org/gmane.comp.lang.r.ggplot2/4496. –
Prawdopodobnie łatwiej jest zrobić dwie oddzielne działki i ułożyć je razem. –