gpt4 book ai didi

在 ggplot2 中重置 update_geom_defaults()

转载 作者:行者123 更新时间:2023-12-04 09:15:49 24 4
gpt4 key购买 nike

这听起来很简单,我确定它是...

如果您使用 ggplot2::update_geom_defaults()如:

ggplot2::update_geom_defaults("line", list(colour = 'red', linetype = 2))

你如何将 ggplot2 恢复到其原始默认值?

到目前为止,我所发现的只是检查 ggplot2已加载,如果它被分离并重新加载,因此“重置”默认值,但这似乎是一个可怕的黑客。
  if("ggplot2" %in% (.packages())){
suppressMessages(suppressWarnings(detach("package:ggplot2", unload=TRUE)))
suppressMessages(suppressWarnings(library(ggplot2)))}

必须有更简单的方法。

最佳答案

您可以“保存”默认值,然后重新应用它们:

old <- ggplot2:::check_subclass("line", "Geom")$default_aes # 2018
old <- ggplot2:::find_subclass("Geom","line")$default_aes # pre 2.0 I think

> old
* colour -> "black"
* size -> 0.5
* linetype -> 1
* alpha -> NA

update_geom_defaults("line", list(color = "red"))

> ggplot2:::find_subclass("Geom","line")$default_aes
$color
[1] "red"

$colour
[1] "black"

$size
[1] 0.5

$linetype
[1] 1

$alpha
[1] NA

然后回来:
update_geom_defaults("line", old)

在我看来,这很笨拙。你最好创建一个绘图函数,或者简单地添加或删除 + geom_line() .设置 geom_defaults 背后的想法是为整个 session 设置默认值。

示例绘图函数:
my_plotfun <- function(x, opt0, opt1, opt2, opt3) {
p <- ggplot(x, aes(...))
if(opt0)
p <- p + geom_line(...)
if(opt1)
p <- p + coord_flip()
if(opt2)
...
p
}

关于在 ggplot2 中重置 update_geom_defaults(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40307499/

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