You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

更新R包后使用ggsave保存SVG出现“bad value”错误求助

解决ggsave保存SVG报错及R包版本回滚方法

一、解决SVG保存报错问题

针对更新包后ggsave存SVG时出现的match_font_c(family, as.logical(italic), as.logical(bold)) : bad value错误(仅SVG格式受影响),可尝试以下步骤:

  • 清除字体缓存:运行systemfonts::clear_font_cache(),完全重启R会话后再尝试保存SVG。更新包后systemfonts的字体缓存可能出现异常,清除后会重新生成正确缓存。
  • 强制指定SVG设备字体:在ggsave中明确指定系统已安装的字体,示例代码:
    ggplot2::ggsave(
      filename = params$file_plot_output,
      plot = p1,
      device = svglite::svglite(family = "Arial")
    )
    
    替换"Arial"为你系统中存在的字体(比如"Helvetica"或系统默认无衬线字体),避免自动字体匹配出错。
  • 调整关联包版本:报错涉及textshaping和svglite的兼容性,可尝试降级其中一个包:
    # 降级svglite到2.1.1版本
    devtools::install_version("svglite", version = "2.1.1")
    # 或降级textshaping到0.3.6版本
    devtools::install_version("textshaping", version = "0.3.6")
    

二、快速回滚R包到更新前版本

方法1:使用devtools::install_version()

若记得更新前的包版本号,直接安装指定版本:

# 示例:回滚ggplot2到3.4.3版本
devtools::install_version("ggplot2", version = "3.4.3")

若不确定版本号:

  • 查看RStudio的包更新历史(若在RStudio中更新);
  • 用packageDescription("包名")$Version查看当前版本,尝试安装前一个稳定版本。

方法2:本地包备份替换

如果之前手动备份过包的本地文件,直接替换R库中的对应包文件夹,重启R即可生效。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:54:58