コンテクスト
同じページに同じ凡例の2つのggplot2をプロットしたいと思います。http://code.google.com/p/gridextra/wiki/arrangeGrobは、これを行う方法を説明しています。これはすでによさそうだ。しかし...私の例では、同じx軸と異なるy軸を持つ2つのプロットがあります。y軸の範囲が他のプロットの少なくとも10倍高い場合(たとえば、1000ではなく10000)、ggplot2(またはグリッド?)はプロットを正しく位置合わせしません(以下の出力を参照)。
質問
2つの異なる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 = "")