语境
我想在具有相同图例的同一页面上绘制两个 ggplot2。http://code.google.com/p/gridextra/wiki/arrangeGrob描述了如何做到这一点。这已经看起来不错了。但是...在我的示例中,我有两个具有相同 x 轴和不同 y 轴的图。当 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 = "")