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

如何修改R语言metafor包森林图的字体?

字体差异原因
  • 官网预览图的字体依赖其展示环境的默认配置,比如可能用了Windows系统的Calibri、Mac的Helvetica Neue,或是服务器端的特定字体;而你的R环境默认绘图字体是Arial,这是不同系统/设备的默认字体设置差异导致的。
  • 官网提供的代码本身没有显式指定字体,运行时会调用你本地R环境的默认绘图字体。
修改森林图字体的方法

metafor的森林图基于base绘图系统,以下几种方法可修改字体:

方法1:通过par()设置全局字体

在绘制森林图前,用par()指定字体族,比如改成Times New Roman:

# 设置全局字体
par(family = "Times")
# 运行你复制的森林图代码
forest(...) # 替换为官网的森林图绘制代码

注意:不同系统支持的字体族名称有差异,Windows下"Times New Roman"需写为"Times New Roman",Mac/Linux下可能是"Times"或"serif"。

方法2:用extrafont包加载自定义字体

如果想使用系统内的其他字体(如微软雅黑、思源黑体),可借助extrafont包:

# 安装并加载包
install.packages("extrafont")
library(extrafont)
# 第一次运行需导入系统字体
font_import()
# 加载字体库
loadfonts()

# 设置字体为思源黑体(示例)
par(family = "Source Han Sans SC")
# 绘制森林图
forest(...)

注意:导入字体耗时较长,且不同系统的字体名称需对应准确,比如Windows下"微软雅黑"的名称是"Microsoft YaHei"。

方法3:用ggplot2重构森林图(可选)

若熟悉ggplot2,可结合metafor用它绘制森林图,字体控制更灵活:

library(metafor)
library(ggplot2)

# 以官网示例数据为例,先获取效应量结果
dat <- dat.bcg
res <- rma(ai=tpos, bi=tneg, ci=cpos, di=cneg, data=dat, measure="RR", slab=paste(author, year, sep=", "))

# ggplot2绘制森林图并指定字体
ggplot(res, aes(x=yi, y=seq_along(yi))) +
  geom_point(size=3) +
  geom_errorbarh(aes(xmin=ci.lb, xmax=ci.ub), height=0.2) +
  geom_vline(xintercept=0, linetype="dashed") +
  scale_y_continuous(breaks=seq_along(res$yi), labels=res$slab) +
  theme(text = element_text(family = "Times New Roman"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:04:53