.Rmd
文件中,然后使用knit
命令并通过Pandoc
转换为HTML幻灯片。根据此帖子,这将插入本地图片:![图像标题](路径/到/您的/图片)
是否有修改这段代码以设置图像大小的方法?
.Rmd
文件中,然后使用knit
命令并通过Pandoc
转换为HTML幻灯片。根据此帖子,这将插入本地图片:![图像标题](路径/到/您的/图片)
是否有修改这段代码以设置图像大小的方法?
这个问题已经很老了,但仍然受到很多关注。由于现有答案已过时,这里提供一个更加实用的解决方案:
自 knitr 1.12 版本开始,有了一个名为 include_graphics
的函数。根据 ?include_graphics
(我强调):
使用此函数的主要优点在于它是可移植的,因为它适用于
knitr
支持的所有文档格式,因此您无需考虑是否需要使用 LaTeX 或 Markdown 语法来嵌入外部图像。与正常的 R 绘图相关的代码块选项也适用于这些图像,例如out.width
和out.height
。
```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```
优点:
要组合路径到一个 在块中生成的绘图(但没有包含),可以使用块选项 opts_current$get("fig.path")
(图形目录的路径)以及 opts_current$get("label")
(当前块的标签)。以下示例使用fig.path
来包含第一个块中生成的两个未显示的图像中的第二个图像:
```{r generate_figures, fig.show = "hide"}
library(knitr)
plot(1:10, col = "green")
plot(1:10, col = "red")
```
```{r}
include_graphics(sprintf("%sgenerate_figures-2.png", opts_current$get("fig.path")))
```
一般的图形路径模式为[fig.path]/[chunklabel]-[i].[ext]
,其中chunklabel
是生成绘图所在块的标签,i
是该块内的绘图索引,ext
是文件扩展名(默认情况下在RMarkdown文档中为png
)。out.width='100pt'
,否则 LaTeX 将会报告非法的度量单位错误。 - andybegar, echo=FALSE, ...
。 - Jameson Quinn更新的回答:在knitr 1.17
中,您可以简单地使用
![Image Title](path/to/your/image){width=250px}
根据@jsb的评论进行编辑
请注意,这仅适用于没有空格的情况,例如{width = 250px}而不是{width = 250px}。{width=250px}
而不是{width = 250px}
。 - Samuelknitr_1.21
和 xaringan
对我来说无法正常工作。 - Dan您也可以使用 png
包读取图像并像正常绘制一样使用 grid.raster
从 grid
包中绘制它。
```{r fig.width=1, fig.height=10,echo=FALSE}
library(png)
library(grid)
img <- readPNG("path/to/your/image")
grid.raster(img)
```
使用这种方法,您可以完全控制您的图像的大小。
img <- readPNG("path/to/your/image")
中,路径周围的引号是必需的,但我无法编辑解决方案。 - Adam Smithpath/to/your/image
。是的,路径名是一个字符串,你需要用引号来定义一个字符串。希望我表达清楚了。 - agstudy下面是几个选项,可以使文件本身包含图像而无需重新制作图像:
div
标签包装图像div
标签包装图像<div style="width:300px; height:200px">
![Image](path/to/image)
</div>
---
title: test
output: html_document
css: test.css
---
## Page with an image {#myImagePage}
![Image](path/to/image)
#myImagePage img {
width: 400px;
height: 200px;
}
如果您有多张图片,您可能需要使用nth-child伪选择器来进行第二个选项。
<div> ... </div>
方法能够与文本内联使用吗?我想让图片直接在一些常规文本旁边。谢谢! - Cassandra如果你正在将文件转换为HTML格式,你可以使用HTML语法来设置图像的大小:
<img src="path/to/image" height="400px" width="300px" />
或者您想要设置的任何高度和宽度。
今天我也遇到了同样的问题,并在使用 knitr 1.16
将内容转化为 PDF 格式时找到了另一个选项(需要安装 pandoc):
![Image Title](path/to/your/image){width=70%}
这种方法可能需要你经过一些试错才能找到最适合自己的尺寸。它特别方便的是让将两个图片并排放置变得更加美观。例如:
![Image 1](path/to/image1){width=70%}![Image 2](path/to/image2){width=30%}
你可以进行创意拼贴,将一些图片并排堆叠并按照你的意愿调整它们的大小。欲了解更多想法和示例,请参见https://rpubs.com/RatherBit/90926。
我发现另一种可行的方法是通过调整 knitr::include_graphics()
的 dpi 选项来实现:
```{r}
knitr::include_graphics("path/to/image.png", dpi = 100)
```
...这种方法(除非你进行计算)相对于在块中定义尺寸而言是试错的,但也许它能帮助某些人。