RMarkdown 和 ggplot:轴标签被切断

RMarkdown and ggplot: Axis labels cut off

在 RMarkdown PDF 文档中,我正在生成一个带有相当长的刻度标签的热图。由于某种原因,这会导致 y 轴标签和颜色图例被截断。我已经尝试了几种技巧来解决这个问题,但到目前为止都无济于事。这是我的代表:

---
title: "Test"
output: pdf_document
draft: true
  
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(
    echo = FALSE, fig_crop=FALSE
)
```

```{r dependencies, include=FALSE}
library(tidyverse)
options(print_format="tex")
```

```{r, include=FALSE}
# Dummy data
set.seed(1234)
Count = rep((1:5), 8)
Gadget = rep(c("BANANA", "APPLE", "PEAR", "ORANGE", "ENCYCLOPEDIA", "XYLOPHONE", "TOMATO", "POTATO"), each=5)
GadgetScore = runif(40, 0, 100)
data = data.frame(Count, Gadget, GadgetScore)
```

```{r}
# Generate heatmap
maxi = max(data$GadgetScore, na.rm=TRUE)
mini = min(data$GadgetScore, na.rm=TRUE)
midi = mini+(maxi-mini)/2
ggplot(data, aes(Count, Gadget, fill=GadgetScore)) + geom_tile() +
  scale_fill_gradient2(name="Gadget score value", low="red", mid="yellow", high="green", midpoint=midi) +
  labs(x="Count", y="Gadgets")
```

这是输出:

如您所见,左侧的 y 轴标签 Gadgets,以及颜色图例标签 Gadget score value在右侧被裁剪。正如我所说,我已经尝试了一些来自 Whosebug 的提示,但到目前为止,none 有效。

技巧 1:this post 之后,我尝试添加

theme(axis.title.x=element_blank(),
    axis.text.x=element_blank(),
    axis.ticks.x=element_blank())

ggplot个元素。

技巧 2: 之后,我尝试用类似

的方式调整绘图块的宽度
fig.width = 5

技巧 3:this post 之后,我尝试添加

theme(plot.margin = margin(100, 100, 100, 100))

ggplot个元素。

技巧 4: 我尝试将选项 crop = FALSEfig_crop=FALSE 添加到设置块中。

不幸的是,none 这些技巧奏效了。任何帮助将不胜感激。

该代码非常适合我。但是,您可以检查图像的对齐方式,也许如果将其放置得更靠右一点,您就可以看到标签。为此尝试在最后一个块中添加 {r, fig.dim = c(5, 2.5), fig.align = 'right'}

就我而言,裁剪错误与 GhostScript 的弃用版本有关。将 GhostScript 更新到最新版本 (9.54.0) 后,我可以 运行 reprex 而不会出现任何图像裁剪问题。