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

在RMarkdown中调整ggplot:解决PDF编译图形截断及字体匹配问题

解决RMarkdown中ggplot图形PDF截断与样式匹配问题

一、调整图形尺寸解决截断问题

1. 单图局部调整

在代码块中通过fig.width和fig.height参数直接指定图形的英寸尺寸,适配PDF页面(A4页面宽度约8.27英寸,扣除边距后建议设置为6-8英寸):

```{r, fig.width=7, fig.height=4.5}
library(ggplot2)
ggplot(mtcars, aes(wt, mpg)) + geom_point()
如果是坐标轴标签、标题等文本过长导致的截断,可配合`theme()`调整文本布局:
```r
ggplot(mtcars, aes(wt, mpg)) + 
  geom_point() +
  labs(x = "超长坐标轴标签示例", y = "每加仑英里数") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))  # 旋转x轴标签避免重叠

2. 全局统一设置

在文档开头的YAML区域配置全局图形参数,无需逐个代码块重复设置:

---
title: "你的文档标题"
output:
  pdf_document:
    fig_width: 7
    fig_height: 4.5
    fig_caption: true
---

二、匹配文档字体族

1. 适配LaTeX默认字体(Computer Modern)

方法一:用showtext嵌入字体

确保系统安装了对应字体,通过showtext包将字体嵌入图形:

```{r setup, include=FALSE}
library(ggplot2)
library(showtext)
showtext_auto()  # 自动开启字体嵌入
font_add("CMU Serif", "cmunrm.ttf")  # 添加Computer Modern衬线字体
ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  labs(title = "与文档字体匹配的图形标题") +
  theme(text = element_text(family = "CMU Serif"))  # 全局应用字体
#### 方法二:直接调用LaTeX字体(无需额外字体文件)
借助`latex2exp`包,直接使用LaTeX的字体命令,完美匹配文档样式:
```r
```{r}
library(ggplot2)
library(latex2exp)
ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  labs(title = TeX("使用\\textbf{Computer Modern}的加粗标题"),
       x = TeX("车辆重量\\textit{(单位:1000磅)}")) +
  theme(text = element_text(family = "serif"))  # 匹配LaTeX默认衬线字体
### 2. 适配特定字体(如Times New Roman)
如果文档使用Times系列字体,可按以下方式设置:
```r
```{r setup}
library(ggplot2)
library(showtext)
showtext_auto()
font_add("Times New Roman", "times.ttf")  # 系统需有该字体文件
ggplot(mtcars, aes(wt, mpg)) +
  geom_point() +
  theme(text = element_text(family = "Times New Roman"))
## 三、额外优化建议
- 若图形仍有截断,可调整PDF页面边距:
```yaml
---
output:
  pdf_document:
    latex_options: "margin=1in"
---
  • 多子图场景推荐用patchwork包布局,同时调整整体尺寸避免拥挤:
```{r, fig.width=9, fig.height=5}
library(patchwork)
p1 <- ggplot(mtcars, aes(wt, mpg)) + geom_point()
p2 <- ggplot(mtcars, aes(gear, mpg)) + geom_boxplot()
p1 + p2
内容的提问来源于stack exchange,提问作者Maria
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:01:10