如何在使用pblapply时抑制ggdark的警告信息
解决ggdark提示信息干扰pblapply进度条的问题
这条提示信息是**消息(message)**而非警告(warning),所以你之前用suppressWarnings()无效,需要针对message类型的输出处理,以下是两种可行方案:
方案一:全局关闭ggdark提示(推荐)
ggdark包提供了全局选项可以直接关闭这类提示,只需在加载包后添加一行代码即可:
library(ggplot2) library(pbapply) library(ggdark) # 关闭ggdark的主题切换提示 options(ggdark.message = FALSE) # 拆分数据 p = split(diamonds, f=diamonds$cut) # 打开PDF pdf("diamonds.pdf", onefile = T) # 遍历绘图 pblapply(p, function(x) { print( ggplot(x) + geom_point(aes(carat, price, color = cut)) + scale_y_continuous(label = scales::dollar) + guides(color = guide_legend(reverse = TRUE)) + labs(title = "Prices of 50,000 round cut diamonds by carat and cut", x = "Weight (carats)", y = "Price in US dollars", color = "Quality of the cut") + dark_theme_bw() ) # 恢复geom默认设置 invert_geom_defaults() }) # 关闭PDF设备 dev.off()
方案二:单次调用时抑制提示
如果不想全局关闭提示,仅在当前绘图流程中抑制,可以用suppressMessages()包裹dark_theme_bw()的调用:
pblapply(p, function(x) { print( ggplot(x) + geom_point(aes(carat, price, color = cut)) + scale_y_continuous(label = scales::dollar) + guides(color = guide_legend(reverse = TRUE)) + labs(title = "Prices of 50,000 round cut diamonds by carat and cut", x = "Weight (carats)", y = "Price in US dollars", color = "Quality of the cut") + suppressMessages(dark_theme_bw()) # 在此处包裹抑制提示 ) invert_geom_defaults() })
补充说明
ggdark输出的这条信息是通过message()函数打印的,而suppressWarnings()只能拦截warning()函数生成的警告信息,因此之前的尝试无效。上述两种方法都是针对message类型输出的处理方式。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

