gpt4 book ai didi

r - 图像从 R Markdown 的投影仪输出中推下幻灯片

转载 作者:行者123 更新时间:2023-12-03 22:32:50 25 4
gpt4 key购买 nike

我正在使用 R markdown v2 创建一个投影仪演示文稿。我的大部分幻灯片都包含由 ggplot 生成的图像,有时在该幻灯片上方带有解释性文本。我发现我真的必须单独调整每张幻灯片上每个元素(即图像、文本等)的大小,以确保图像不会被推离幻灯片的末尾。

这最终会变得非常耗时,并且有点违背了 R markdown 的既定目的之一:即成为一种快速进行可重复研究的方法。

我想知道是否有任何方法可以让各种元素智能地自动调整大小?即使看起来不怎么样,至少事情不会被推到最后吧?或者,如果没有,也许人们会使用其他方法来确保事情恰到好处,而不会花费太多时间。

预先感谢您的想法...

最佳答案

这是一个棘手的问题,因为排版很棘手。 Rmarkdown在隐藏很多棘手的细节方面做得很好,但是如果要排版,则需要排版。正如您将看到的,在 Latex 中甚至很难。有很多事件部件,例如标题和图例,渲染图像,然后将其包含在中间 .tex 中文件所以pandoc可以让您的.pdf .如果不要求大量输入(这是您首先要避免的),就不可能有完全通用的解决方案。

我不认为创建 Beamer 演示文稿本身与可重复的研究不兼容,但它是一个合法的输出,可能与其他报告一起。

但是在开始使用 Latex 之前,您应该考虑非常简单的解决方法,即在每张幻灯片上只放置图形而不放置文本。这可靠地适合幻灯片上的图像。然后您可以在 ggplot2 中使用注释添加其他文本。这就是我要做的。

下面的 Rmarkdown 使用了一些复杂的嵌入式 Latex 来或多或少地做你想做的事。它确实将图像限制在屏幕的下半部分(但如果您了解有关 tikz 的更多信息,则可以更改此设置...),但会随着上部文本块的增加而将图像缩放到剩余的页面大小。当然,它还可以缩放所有图例,但您可以在 ggplot2 中调整这些图例。

---
title: "Some beamer slides with figures"
author: Somebody
date: November 06, 2015
output:
beamer_presentation:
keep_tex: yes
header-includes:
- \usepackage{graphicx}
- \usepackage{tikzpagenodes}
- \usetikzlibrary{calc}
- \usepackage{caption}
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE, fig.path="figures/beamer-example/")

library(ggplot2)
```

```{r}
mtcars$gear <- factor(mtcars$gear,levels=c(3,4,5),
labels=c("3gears","4gears","5gears"))
mtcars$am <- factor(mtcars$am,levels=c(0,1),
labels=c("Automatic","Manual"))
mtcars$cyl <- factor(mtcars$cyl,levels=c(4,6,8),
labels=c("4cyl","6cyl","8cyl"))
```
## A default plot

```{r mpg-plot}
qplot(mpg, data=mtcars, geom="density", fill=gear, alpha=I(.5),
main="Distribution of Gas Milage", xlab="Miles Per Gallon",
ylab="Density")
```

## test

- some text which
- fills vertical
- space

\begin{tikzpicture}[overlay,remember picture]
% Caption
\node [anchor=south west,outer sep=0pt,inner sep=0pt,text width=\textwidth] (caption) at (current page text area.south west) {%
};
% Image
\path let \p0 = (0,0), \p1 = (caption.north) in
node [inner sep=0pt,outer sep=0pt,anchor=south] at (\x1,\y1) {%
\pgfmathsetmacro\imgheight{\y0-\y1-\abovecaptionskip}%
\includegraphics[height=\imgheight pt,width=\textwidth,keepaspectratio]{figures/beamer-example/mpg-plot-1}%
};
\end{tikzpicture}

## test2

- some text which
- fills vertical
- space
- but squashes
- the image badly

\begin{tikzpicture}[overlay,remember picture]
% Caption
\node [anchor=south west,outer sep=0pt,inner sep=0pt,text width=\textwidth] (caption) at (current page text area.south west) {%
};
% Image
\path let \p0 = (0,0), \p1 = (caption.north) in
node [inner sep=0pt,outer sep=0pt,anchor=south] at (\x1,\y1) {%
\pgfmathsetmacro\imgheight{\y0-\y1-\abovecaptionskip}%
\includegraphics[height=\imgheight pt,width=\textwidth,keepaspectratio]{figures/beamer-example/mpg-plot-1}%
};
\end{tikzpicture}

## test3
\begin{tikzpicture}[overlay,remember picture]
% Caption
\node [anchor=south west,outer sep=0pt,inner sep=0pt,text width=\textwidth] (caption) at (current page text area.south west) {%
};
% Image
\path let \p0 = (0,0), \p1 = (caption.north) in
node [inner sep=0pt,outer sep=0pt,anchor=south] at (\x1,\y1) {%
\pgfmathsetmacro\imgheight{\y0-\y1-\abovecaptionskip}%
\includegraphics[height=\imgheight pt,width=\textwidth,keepaspectratio]{figures/beamer-example/mpg-plot-1}%
};
\end{tikzpicture}

您可以在以下位置阅读一些血腥的细节:
https://tex.stackexchange.com/questions/14512/how-to-define-a-figure-size-so-that-it-consumes-the-rest-of-a-page

关于r - 图像从 R Markdown 的投影仪输出中推下幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28284319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com