我有一个本地图像,我想包含在.Rmd
文件中,然后我将knit
并转换为带有Pandoc
的HTML幻灯片。根据this post,这将插入本地图像:
![Image Title](path/to/your/image)
有没有办法修改此代码以设置图像大小?
您也可以使用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)
```
使用此方法,您可以完全控制图像的大小。
问题是陈旧的,但仍然受到很多关注。由于现有的答案已经过时,这里有一个更新的解决方案:
从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
是文件扩展名(默认情况下png
在RMarkdown文档中)。
未更新的答案:在knitr 1.17
你可以简单地使用
![Image Title](path/to/your/image){width=250px}
这里有一些选项可以保持文件自包含而不需要重新调整图像:
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伪选择器。
如果要转换为HTML,则可以使用HTML语法设置图像的大小:
<img src="path/to/image" height="400px" width="300px" />
或者你想要给出的任何高度和宽度。
今天有同样的问题,并且在编织为PDF时需要knitr 1.16
的另一个选项(这需要你安装了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解决方案适用于调整数字的大小,但我无法弄清楚如何使用它来生成并排调整大小的数字。我发现this post对此非常有用。
另一个对我有用的选择是使用knitr::include_graphics()
的dpi选项,如下所示:
```{r}
knitr::include_graphics("path/to/image.png", dpi = 100)
```
...确定(除非你做数学运算)与在块中定义维度相比是试验和错误,但也许它会帮助某人。