Kontekst
Chcę wydrukować dwa ggplot2 na tej samej stronie z tą samą legendą. http://code.google.com/p/gridextra/wiki/arrangeGrob opisuje, jak to zrobić. To już wygląda dobrze. Ale ... W moim przykładzie mam dwa wykresy z tą samą osią x i różnymi osiami y. Gdy zakres osi y jest co najmniej 10 razy większy niż na innym wykresie (na przykład 10000 zamiast 1000), ggplot2 (lub siatka?) Nie wyrównuje krzywych prawidłowo (patrz wyjście poniżej).Wyrównaj wiele działek ggplot2 z siatką
Pytanie
Jak również wyrównać lewą część działki, przy użyciu dwóch różnych osi y?
Przykładowy kod
x = c(1, 2)
y = c(10, 1000)
data1 = data.frame(x,y)
p1 <- ggplot(data1) + aes(x=x, y=y, colour=x) + geom_line()
y = c(10, 10000)
data2 = data.frame(x,y)
p2 <- ggplot(data2) + aes(x=x, y=y, colour=x) + geom_line()
# Source: http://code.google.com/p/gridextra/wiki/arrangeGrob
leg <- ggplotGrob(p1 + opts(keep="legend_box"))
legend=gTree(children=gList(leg), cl="legendGrob")
widthDetails.legendGrob <- function(x) unit(3, "cm")
grid.arrange(
p1 + opts(legend.position="none"),
p2 + opts(legend.position="none"),
legend=legend, main ="", left = "")
Zobacz: http://stackoverflow.com/questions/13294952/left-align-two-g raph-edges-ggplot/13295880 # 13295880? –