Контекст
Я хочу построить два ggplot2 на одной странице с той же легендой. http://code.google.com/p/gridextra/wiki/arrangeGrob раскрывает, как это сделать. Это уже выглядит хорошо. Но... В моем примере у меня есть два графика с одинаковой осью х и другой осью. Когда диапазон оси y по меньшей мере в 10 раз выше, чем у другого графика (например, 10000 вместо 1000), ggplot2 (или сетка?) Не выравнивает графики (см. Выход ниже).
Вопрос
Как также выровнять левую часть графика, используя две разные оси Y?
Пример кода
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 = "")
Выход