使用ggsave导出含extrafont字体的ggplot图时遇字体丢失问题
ggplot字体导出丢失及画质问题的解决办法
修复ggsave字体丢失问题
- 去掉
loadfonts()里的device="win"参数,改用通用加载方式:library(extrafont) font_import() loadfonts() # 不指定设备,适配所有导出场景 - 导出时给ggsave指定
device="win.metafile"(Windows环境),同时确认主题字体设置正确:# 示例:将主题字体设为"微软雅黑" p <- ggplot(data) + geom_point() + theme(text = element_text(family = "微软雅黑")) ggsave("output_plot.png", p, device = "win.metafile", dpi = 300)
提升PNG/JPEG导出画质
- 用ggsave直接导出时,把
dpi调到300以上,同时明确设置宽高(单位用英寸或厘米):ggsave("high_res_plot.png", p, width = 10, height = 7, dpi = 300) - 试试
ragg包的导出设备,对字体渲染和画质支持更优:- 先安装包:
install.packages("ragg") - 导出代码:
ggsave("ragg_plot.png", p, device = ragg::agg_png, dpi = 300)
- 先安装包:
替代方案:换用showtext包管理字体
如果extrafont问题始终无法解决,换showtext试试,兼容性更好:
- 安装并加载包:
install.packages("showtext") library(showtext) - 添加系统字体(以Windows微软雅黑为例,其他系统自行调整字体路径):
font_add("微软雅黑", "msyh.ttc") showtext_auto() # 让ggplot自动调用该字体 - 直接用ggsave导出即可,无需额外设置:
ggsave("showtext_plot.png", p, dpi = 300)
内容的提问来源于stack exchange,提问作者Nick Glättli
相关产品推荐
相关产品推荐

