2

grid.arrange を使用して複数のプロットで整理できるように、一般的に参照される g_legend 関数を使用して、ggplot2 で作成されたグラフから凡例を引き出しています。グリッドの下部に簡単に配置できるように、凡例を要素の 1 行にしたいと考えています。ただし、元のプロットの形式に関係なく、g_legend は常に単一列の凡例を返します。凡例に 1 行のみを強制する方法を知っている人はいますか?

#extract legend
#https://github.com/hadley/ggplot2/wiki/Share-a-legend-between-two-ggplot2-graphs
g_legend<-function(a.gplot){
  tmp <- ggplot_gtable(ggplot_build(a.gplot))
  leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
  legend <- tmp$grobs[[leg]]
  return(legend)}
4

1 に答える 1

3

私は同じ問題を抱えていましたが、それを解決しました。「p1.leg」に凡例オプションを追加する必要があります。

p1.leg <- ggplot(data,aes(v1, v2,colour=v3))+geom_area() + theme(legend.direction = "horizontal", legend.position = "bottom")
p1 <- ggplot(data, aes( v1, v2),

その後、動作します。

于 2013-11-08T02:10:58.483 に答える