5

水平または垂直ではなく、2x2 グリッドに配置したい 4 つの異なるエントリを持つ凡例があります。別の使用のために凡例を抽出しているため、このやや変わった配置が必要です。何か案は?

以下のコードは、すべてのエントリが 1 つの列に垂直に配置された凡例を生成します。

require(ggplot2)
library(grid)
library(gridExtra)

dat <- data.frame(x=c(1,2,1,2,1,2,1,2),y=c(1,2,3,4,2,3,4,5),color=factor(c("a","a","b","b","c","c","d","d")))
p = ggplot(dat)
p = p + geom_line(aes(dat$x,dat$y,color=dat$color))
p = p + scale_colour_manual (values=dat$color,name="")
#print(p)

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)}

legend <- g_legend(p)
grid.arrange(legend)
4

1 に答える 1

8

guides(colour = guide_legend(nrow = 2))プロットに追加してみてください。

于 2012-09-07T18:45:57.950 に答える