我正在尝试了解以下细分,尤其是sapply(tmp$grobs, function(x) x$name
require(gridExtra)
require(ggplot2)
my_hist <- ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()
tmp <- ggplot_gtable(ggplot_build(my_hist))
leg <- which(sapply(tmp$grobs, function(x) x$name) == "guide-box")
legend <- tmp$grobs[[leg]]
我认为此函数用于提取tmp$grobs
的名称,如下所示
然后我试过了。第一个问题,如何理解结构,如[[1]]
;此外,为什么(tmp$grobs[1])$name
不起作用。
答案 0 :(得分:2)
这不是您问题的答案,而是编码建议
require(ggplot2)
my_hist <- ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar()
tmp <- ggplotGrob(my_hist)
legend <- tmp$grobs[[grep("guide-box", tmp$layout$name)]]