即serif
代表Times New Roman字体,sans
代表Arial字体,mono
代表Courier New字体。这种映射关系在基础绘图系统和ggplot2系统中均可使用。
既然字体找不到,那么就导入我们电脑的字体咯:
# 这个代码只需运行一次
extrafont::font_import()
然后你就会看到大量的字体,被从内置区域,搬运到R 目录下
然后就是在保存之前,加载字体
extrafont::font_import()
extrafont::loadfonts()
使用 ggsave
函数:ggplot2
提供了 ggsave
函数来保存图形。确保你使用了正确的语法:
ggsave("plot.pdf", plot = your_plot_object, device = "pdf")
检查图形设备:在某些情况下,图形设备可能没有正确打开或关闭。你可以尝试显式地打开和关闭设备:
pdf("plot.pdf")
print(your_plot_object)
dev.off()
CairoPDF()
是一个替代方案,它更好地处理了字体渲染和跨平台问题。为确保 CairoPDF
正常工作,请确保正确使用单位并且关闭图形设备 (dev.off()
)。
正确使用 CairoPDF()
保存图像
r
Copy code
# 使用 CairoPDF 保存图像 Cairo::CairoPDF("1.5Merge_volcano_gene_plot.pdf", width = 4, height = 3.5) # 绘制您的图形 print(p) # 关闭设备 dev.off()
关键点:
- 确保在使用
CairoPDF
或其他Cairo
设备时,调用print(p)
以实际生成图形。 - 最后调用
dev.off()
来关闭图形设备,确保文件正确保存。
关于单位:
CairoPDF()
并不需要 units='in'
这种参数,因为 width
和 height
默认是以英寸为单位。