r - RMarkdown 和 ggplot:轴标签被切断
问题描述
在 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被裁剪。正如我所说,我已经尝试了 StackOverflow 的一些提示,但到目前为止,它们都没有奏效。
技巧 1:在这篇文章之后,我尝试添加
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank())
到ggplot
元素。
技巧2:在这篇文章之后,我尝试使用类似的东西来调整情节块的宽度
fig.width = 5
技巧 3:在这篇文章之后,我尝试添加
theme(plot.margin = margin(100, 100, 100, 100))
到ggplot
元素。
技巧 4:我尝试将选项crop = FALSE
和添加fig_crop=FALSE
到设置块。
不幸的是,这些技巧都没有奏效。任何帮助都感激不尽。
解决方案
该代码非常适合我。但是,您可以检查图像的对齐方式,也许如果您将其放在更右侧一点,您可以看到标签。为此尝试在最后一个块中添加{r, fig.dim = c(5, 2.5), fig.align = 'right'}
推荐阅读
- bash - bash 中 ${...} 构造(用于字符串和数组)的名称?
- c# - EF Core Code First:通常重命名拥有类型的属性
- c++ - 是否存在对象的存储在其生命周期内可能发生变化的任何情况?
- r - Unicode 字符输出与 print() 的差异
- node.js - 如何使用自动生成的 SSL 密钥正确地向服务器发送 HTTPS 请求?
- c++ - 我对下面 [dcl.enum]/5 (5.3) 中的“否则”一词的解释是否正确?
- excel - 如何根据一系列单元格打开和关闭多个 Excel 工作簿
- excel - 当单元格已包含该列表中的值时,如何从单元格的验证列表中删除项目?
- mysql - 使用单个表单将数据保存到两个表
- pyspark - 如何在 AWS Glue 作业中附加带有源名称的新列?