使用svglite图形设备时如何成功运行pkgdown工作流?
问题原因
这个警告源于设备切换时背景色(bg)参数的类型不匹配:
- svglite设备默认的
bg参数是字符型(比如"transparent"),但之前的绘图设备(如pdf/png)的bg可能是NULL或其他类型。 - 当knitr/pkgdown隐式切换设备时,grDevices会检查新旧设备的
bg参数模式,类型不一致就会抛出这个警告。 - 你没显式调用
par(),但ggplot或pkgdown的渲染流程可能在后台隐式调整了设备参数,导致冲突。
解决方法
1. 统一设备的bg参数类型
显式给svglite指定和旧设备一致的bg参数,消除类型冲突:
knitr::opts_chunk$set( dev = "svglite", dev.args = list(bg = NULL) # 或 bg = "white",匹配你之前设备的设置 )
如果之前的设备用的是白色背景,就设bg = "white";如果是默认的透明/NULL,就用bg = NULL。
2. 调整pkgdown的错误处理规则(不推荐)
如果必须保留当前设置,可以在pkgdown的配置文件(_pkgdown.yml)里允许警告:
build: error_on_warning: false
但这只是绕过问题,不如从设备参数统一入手彻底解决。
3. 检查主题的背景设置
如果你的ggplot主题(比如theme_bw())显式设置了面板背景色,确保它和svglite的bg参数不冲突。比如主题用白色背景,就把svglite的bg也设为"white"。
内容的提问来源于stack exchange,提问作者Indrajeet Patil
相关产品推荐
相关产品推荐

