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