Совместите несколько графиков ggplot2 с сеткой

Context

Я хочу построить два ggplot2 на одной странице с одной и той же легендой.http://code.google.com/p/gridextra/wiki/arrangeGrob рассказывает, как это сделать. Это уже выглядит хорошо. Но ... В моем примере у меня есть два графика с одинаковой осью X и разными осями Y. Когда диапазон оси Y, по крайней мере, в 10 раз выше, чем на другом графике (например, 10000 вместо 1000), ggplot2 (или grid?) Не корректно выравнивает графики (см. Вывод ниже).

Question

Как мне также выровнять левую сторону графика, используя две разные оси Y?

Example Code
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 = "")
Output

Example image

Ответы на вопрос(4)

Ваш ответ на вопрос