Rmarkdown:同一页面上的多个图具有单独的标题

2024-05-01

我正在用 R markdown 编写一份带有 pdf 输出的报告。我有几个图,我想在 2x2 矩阵中每页显示四个图。有没有办法让它们像这样显示并带有单独的标题?

这是我到目前为止所尝试过的:

  • 包 gridExtra - 我可以轻松设置我想要的布局,但我无法向图中添加标题。是否有一个选项可以向图中添加标题grid.arrange?

  • 将每个图放在不同的块中并使用 R 块选项。基本设定out.width='.49\\linewidth', fig.align='right' and fig.align='left'或者。在这里我可以设置单独的标题fig.cap但这些图总是显示在单独的页面上。

  • 我尝试玩fig.width and fig.height选项,并能够让它们显示在同一页面上各自的左侧或右侧。但是,标题始终采用整个页面宽度并保持在中心位置,而不是随绘图大小环绕。有没有办法让标题遵循绘图大小规则?

这是示例代码:

```{r, echo=FALSE, cache=FALSE, results=FALSE, warning=FALSE,  comment=FALSE, message= FALSE, eval =T, fig.height= 9}

p1<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
labs(caption = "Lorem ipsum dolor sit amet, consectetur adipiscing     elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ")+
theme(plot.caption = element_text(hjust = 0.5))

p2<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
labs(caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.  ")+
theme(plot.caption = element_text(hjust = 0.5))

p3<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
labs(caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ")+
theme(plot.caption = element_text(hjust = 0.5))

p4<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
labs(caption = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ")+
theme(plot.caption = element_text(hjust = 0.5))

library(gridExtra)
grid.arrange(p1,p2,p3,p4)
```

Here is the output image I'd appreciate any help. Thanks!


您可以在 LaTeX 输出中使用子图,如下所述here https://stackoverflow.com/questions/12546365/subfigures-or-subcaptions-with-knitr/49086985#49086985。如果您有很多绘图并且希望更容易地提供标题,您可以在列表中指定这些标题(即captions <- c("Caption 1", "Caption 2") 在块之前并将此列表提供给块作为fig.subcap=captions

---
output: pdf_document
header-includes:
  - \usepackage{subfig}
---  

```{r}
captions <- c("Caption 1",
              "Caption 2", 
              "Caption 3",
              "Caption 4: a very very very very very very very very very long one")
```


```{r, echo=FALSE, cache=FALSE, results=FALSE, warning=FALSE,  comment=FALSE, message= FALSE, eval =T,  fig.cap = "Overall Caption", fig.subcap=captions, out.width='.49\\linewidth', fig.asp=1, fig.ncol = 2}
library(ggplot2)
p1<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
theme(plot.caption = element_text(hjust = 0.5))

p2<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
theme(plot.caption = element_text(hjust = 0.5))

p3<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
theme(plot.caption = element_text(hjust = 0.5))

p4<- ggplot(mpg, aes(displ, hwy, colour = class)) + 
geom_point()+
theme(plot.caption = element_text(hjust = 0.5))

p1
p2
p3
p4
```

Edit

为了确保子图之间有边距,您可以添加margins加载包时的选项:

  - \usepackage[margin = 8pt]{subfig}

查看包文档中的其他选项:http://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/latex/contrib/subfig/subfig.pdf http://anorien.csc.warwick.ac.uk/mirrors/CTAN/macros/latex/contrib/subfig/subfig.pdf

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rmarkdown:同一页面上的多个图具有单独的标题 的相关文章

  • 将注释框添加到 ggplot 对象的网格中

    我正在准备37个网格ggplot使用grid arrange功能 节省轴标签当前占用的空间并添加一些信息 例如Sys time 我会在图形网格的右下角添加一个框 使用的最小示例mtcars数据可以在下面找到 真实数据将覆盖 x 轴上非常不同
  • R 中的 Markdown 表到数据框

    有多种方法可以将数据框转换为 Markdown 表 但是 给定 Markdown 表 如何转换回数据帧 给定一个表格 Table Header Second Header Table Cell Cell 2 Cell 3 Cell 4 或者
  • rmarkdown:手动指定pandoc路径?

    我有一个定期渲染的 rmarkdown 文档rmarkdown render 它在我的计算机 Windows 上运行良好 因为我安装了 RStudio 并且它自动设置了 pandoc 的路径 但是 当我尝试在我的服务器 RStudio 外部
  • 在 RMarkdown 中使用图像作为表格?

    我知道我想做的事情听起来很愚蠢 但请耐心等待 我想将表格的现有图像 PNG 插入到将转换为 pdf 的 RMarkdown 文档中 有什么办法可以做到这一点并获得图像被视为一张桌子用于编号目的 也就是说 显然我可以做 A caption f
  • Rmarkdown 中评论的快捷方式?

    简单的问题 有人知道 Rmd 中评论的快捷键吗 在 Knit 中 这可以使用 CTRL C 来完成 它会在编写和编码环境中生成注释行 不幸的是 这在 Rmd 中不起作用 目前我必须输入 我正在使用 R studio 在 markdown 部
  • 如何更改四开中代码块的字体大小?

    我在用quarto准备 Beamer 演示文稿 我想减小给定块内代码的字体大小 以便一切都更合适 请参阅下面的示例 生成块的代码是 python Import packages import numpy as np python echo
  • 如果我在表格中包含标题,如何防止 kable 在最终文档中留下原始乳胶?

    我正在 Rmarkdown 特别是 bookdown 中写我的论文 并使用 knit 将其编译成 PDF 当我编织它时 除了表格和数字之外 一切都很完美 这些表格 用 kable 生成 看起来几乎完美 但包装如下 其中 table 是正确呈
  • 方程编号与 Rmarkdown 中的预览到 pdf?

    在 Rmarkdown 中 编织为 PDF 如果我写一个等式 begin equation y x 2 end equation 然后我在 PDF 输出中得到一个编号方程 如果我写一个等式 y x 3 那么方程就没有编号 我喜欢能够控制哪些
  • Bookdown:如何更改章节标题的大小?

    我正在使用 bookdown 为研讨会生成幻灯片 我使用菜单中的 大 字母选项来显示幻灯片 但是章节标题字体太大 我在哪里 如何修改那个 Thanks Paul 你可以用 css 来控制它yihui https stackoverflow
  • 如何在 rmarkdown 中格式化 sessionInfo() ?

    如果我想在 R 中很好地打印 PDF 中的 sessionInfo 我可以使用 toLatex sessionInfo 似乎应该有一个类似的选项让 rmarkdown 在 HTML 中呈现 但我在这里或 Rdocumentation 上找不
  • RMarkdown PDF 输出中未显示某些 Unicode 字符

    我正在尝试将一些课程笔记整理为 PDF 但无法正确显示某些 Unicode 字符 使用xelatex https en wikipedia org wiki XeTeXLatex 引擎对于渲染文档是必需的 使用默认引擎会因无法识别的字符而导
  • R Markdown:openBinaryFile:不存在(没有这样的文件或目录)

    我开发了一个闪亮的应用程序 允许用户通过 R Markdown 下载 HTML 报告 我正在尝试将自定义 css 和图像包含到我的 rmarkdown 文件中 但是 我不断收到此错误消息 pandoc Could not fetch eit
  • 从 R Markdown 中的字数统计中排除部分

    我正在用 Rmarkdown 写一篇论文 通过 LaTeX 导出为 PDF 我需要计算正文中的字数 对于 LaTeX 文档 我使用texcount从命令行 使用我的 tex 文档中的以下标签指定要从字数统计中排除的部分 TC ignore
  • 如何在 R 和 RStudio 中构建 pdf 小插图

    我是编写 R 包的新手 我正在尝试学习如何为我的包裹制作小插图 我创建了一个小插图文件夹 其中包含文件 getting started Rmd title WaterML Tutorial author Jiri Kadlec date r
  • 将水平线添加到 html rmarkdown 文档隐藏文本部分

    我正在制作一个与 HTML 页面结合的 Rmarkdown 文档 我不想用标题或项目符号分隔某些文本部分 而是想在它们之间绘制水平线 根据http rmarkdown rstudio com authoring basics html ht
  • 如何在 rmarkdown 中显示带有 results='asis' 的格式化 R 输出

    当使用 results asis 时 有没有办法在 rmarkdown knitr 中显示格式化程序 R 输出 一个例子是以下函数 myfun lt function cat hello n cat c one 1 two 2 然后 该块将
  • Plotly 绘图不会在 RMarkdown 文档的 for 循环内渲染

    我正在尝试动态构建一个需要运行循环的报告 并为每次迭代打印一些消息 表格和绘图 我可以让一切正常运转except为了情节 示例 rmd r echo FALSE results asis fig keep all message FALSE
  • 在`rmarkdown`中,如何在句子中添加图标?

    In rmarkdown 如何在句子中添加图标 例如如下 如何添加markdown icon单词 Markdown 和 is 之间 有一个很好的 R 包 可以轻松下载 RMarkdown 文档并将图标添加到其中 icons https gi
  • 使用行内 r 代码作为 R markdown 标头的一部分

    我希望使用行 R 代码作为 r markdown 文件中标头的一部分 然而 当我编织文件时 标题上使用的字体是不同的 如何确保字体相同 下面是一个简单的例子 r 1 1 Header 您可以将内容括在反引号中以表示内联 r 代码 如下所示
  • 将空行添加到文字输出 RMarkdown

    再会 我正在尝试使用导出到 Word 文档的 rmarkdown 文件创建会议摘要提交 我正在尝试找到一种在输出的word文档中插入空行的方法 我发现可以通过在 Markdown 文件末尾添加两个空格来插入换行符 但是 当您只需要一个空行时

随机推荐

  • 使用实体框架如何在没有一个庞大查询结果集或数百个小型查询的情况下创建嵌套对象?

    我使用 EF 填充对象 然后在业务层代码中与之交互 这些对象有多个级别 但我们首先将其简化为典型的主从示例Order and OrderLine 假设我需要检索 50 个订单 每个订单大约有 100 个订单行 并且我需要所有这些数据 在 E
  • 使用 MaltParser 和 NLTK 进行依存分析

    考虑一下这个句子 new sent PeterParker loves MaryJane 我尝试使用 malparser 和 NLTK 解析这句话 如下所示 maltParser nltk parse malt MaltParser wor
  • 如何检查 SwitchPreference 的当前状态?

    我有一个SwitchPreference in my SettingsFragment kt根据它是否打开或关闭来更改图标和标题 这是代码 notificationsPreference onPreferenceChangeListener
  • 有没有办法阻止cfchart强制js进入响应内容?

    更新 已报告错误 感谢投票https tracker adobe com view CF 4200017 https tracker adobe com view CF 4200017 我们正在从 ColdFusion 10 迁移到 201
  • 如何使用 jQuery Nestable 插件和 Codeigniter 创建子菜单?

    我在用着jQuery 可嵌套插件 with 代码点火器 3为网站创建 5 级菜单 这是一个很好的解决方案 用户可以通过拖放来更改菜单项的级别和位置 然而 我的下面的函数只能创建第一级菜单 当我更改为菜单项的子级 2 3 4 5 时 它对我不
  • 使用 ANTLR 解析时忽略输入的某些部分

    我正在尝试通过 ANTLR ANTLRWorks 3 5 2 解析语言 目标是输入完整的输入 但 Antlr 给出语法中定义部分的解析树并忽略其余输入 例如这是我的语法 grammar asap project begin PROJECT
  • 数据类的子类,带有一些断言

    我有一个冻结的数据类MyData保存数据 我想要一个杰出的子类MySpecialData只能保存长度为1的数据 这是一个有效的实现 from dataclasses import dataclass field dataclass froz
  • Google Developers Console 的项目配额

    当我尝试向我的项目添加新项目时开发者控制台 https console developers google com project 我收到此消息 You have exceeded the quota for project creatio
  • nuget 规范依赖项,获取最新版本吗?

    In the nuspec 版本控制文档 http docs nuget org docs reference versioning I see 1 0 1 0 x 1 0 x 1 0 1 0 x lt 1 0 1 0 x 1 0 1 0
  • 高效快速的线程参数方法

    创建带参数的线程最有效的方法是什么 参数是一个结构体 如果该结构体不能保留在父线程堆栈上 有两种解决方案 具有动态内存分配 struct Arg int x int y void my thread void v arg Arg arg A
  • Fortran if stop 需要 endif 吗?

    在 fortran 90 中 if stop 语句是否需要结束 endif example if foo eq 1 stop do some stuff do some stuff 是循环的一部分还是 stop 意味着程序结束时 endif
  • 移动 SVN 存储库后的 git-svn ?

    我们最近将 SVN 服务器从一个数据中心迁移到另一个数据中心 并且服务器的 IP 发生了变化 我用了svn switch relocate old url new url更新我的实际工作副本 这很高兴 然而 我的大部分工作都是在本地 git
  • 如何在 MATLAB 中创建带有分级标记颜色的散点图?

    我想在 MATLAB 中绘制一个简单的散点图 标记颜色从光谱的一端到另一端各不相同 例如红色 橙色 黄色 蓝色 紫色 我的数据比较了一段时间内河流的水量和水质 3 个简单的列 时间 水量 质量 我想绘制数量与质量的 x y 散点图 但颜色随
  • C#中私有类的概念

    除了内部类之外 C 中是否可以存在私有类 根本不 除非它在嵌套类中 否则什么都没有 未嵌套在其他类或结构中的类和结构可以是public or internal 声明为 public 的类型可由任何其他类型访问 声明为内部的类型只能由同一程序
  • android-sdk/tools/ant/build.xml:698: 返回 null: 1

    我正在尝试测试 Android 版本 以确保不会发生意外情况 尝试从命令行使用 ant 构建时 usr local bin ant release BUILD FAILED android sdk tools ant build xml 6
  • Node.js + Express + Redis,什么时候关闭连接?

    我有一个使用的节点应用程序Express http expressjs com and 节点redis https github com mranney node redis 我正在遵循中概述的方法学习节点 http shop oreill
  • 每次我们想在应用程序中更改字体时,是否都必须复制 Font TTF

    以前 为了使我的应用程序可以在 Gingerbread 及以上设备中运行 我必须将 Robotto 字体资源复制到 asset 文件夹中 这是因为 Gingerbread 本身不附带 Robotto 字体 但是 假设我决定仅将我的应用程序部
  • Eclipse 在不存在的断点处停止

    我有一个 Eclipse java 项目 它在不存在的断点处停止 这个位置曾经有一个断点 但我把它删除了 有什么想法为什么会发生这种情况吗 注意 这与这里提到的问题不同 幻象断点让我发疯 https stackoverflow com qu
  • 如何在 Vim 中转置文件中的行和列的内容?

    我知道我可以使用 Awk 但我使用的是 Windows 机器 并且我正在为可能没有 Awk 的其他人创建一个函数 我也知道我可以编写 C 程序 但我不希望我正在制作的 Vim 实用程序需要编译和维护 原始文件可能是 THE DAY WAS
  • Rmarkdown:同一页面上的多个图具有单独的标题

    我正在用 R markdown 编写一份带有 pdf 输出的报告 我有几个图 我想在 2x2 矩阵中每页显示四个图 有没有办法让它们像这样显示并带有单独的标题 这是我到目前为止所尝试过的 包 gridExtra 我可以轻松设置我想要的布局