gpt4 book ai didi

r - 确定 ggplot 是否有图例

转载 作者:行者123 更新时间:2023-12-04 11:05:02 25 4
gpt4 key购买 nike

问题

如果任何给定的 ggplot 对象有图例,我如何以编程方式找出?本来想先转成grob,看看布局里有没有guide-box,感觉有点hacky。关于如何以可靠且可重现的方式做到这一点有什么建议吗?

代码

library(ggplot2)
library(grid)
bp <- ggplot(iris, aes(Petal.Length, Petal.Width)) + theme(legend.position = "top")
noLegend <- bp + geom_point()
withLegend <- bp + geom_point(aes(color = Species))
gNoLegend <- ggplotGrob(noLegend)
gWithLegend <- ggplotGrob(withLegend)

any(gNoLegend$layout$name == "guide-box")
# [1] FALSE
any(gWithLegend$layout$name == "guide-box")
# [1] TRUE

最佳答案

一个简单的函数(虽然我觉得你的方法也很好):

check_for_legend <- function(x) {
'gtable' %in% class(try(cowplot::get_legend(x), silent = TRUE))
}
check_for_legend(noLegend)

FALSE

check_for_legend(withLegend)

TRUE

关于r - 确定 ggplot 是否有图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41997200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com