CL.*_*CL. 172
问题是陈旧的,但仍然受到很多关注.由于现有的答案已经过时,这里有一个更新的解决方案:
从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")
```
Run Code Online (Sandbox Code Playgroud)
好处:
要构成在块(但未包括)中生成的绘图的路径,块选项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")))
```
Run Code Online (Sandbox Code Playgroud)
图形路径的一般模式是[fig.path]/[chunklabel]-[i].[ext]
,其中chunklabel
是生成绘图的块的标签,i
是绘图索引(在此块内)并且ext
是文件扩展名(默认情况下png
在RMarkdown文档中).
ags*_*udy 91
您也可以使用读取图像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)
```
Run Code Online (Sandbox Code Playgroud)
使用此方法,您可以完全控制图像的大小.
Ins*_*nds 84
未更新的答案:在knitr 1.17
你可以简单地使用
{width=250px}
Run Code Online (Sandbox Code Playgroud)
Nic*_*edy 35
这里有一些选项可以保持文件自包含而无需重新调整图像:
div
标签中<div style="width:300px; height:200px">

</div>
Run Code Online (Sandbox Code Playgroud)
---
title: test
output: html_document
css: test.css
---
## Page with an image {#myImagePage}

Run Code Online (Sandbox Code Playgroud)
#myImagePage img {
width: 400px;
height: 200px;
}
Run Code Online (Sandbox Code Playgroud)
如果您有多个图像,则可能需要为第二个选项使用nth-child伪选择器.
Shr*_*oor 19
如果要转换为HTML,则可以使用HTML语法设置图像的大小:
<img src="path/to/image" height="400px" width="300px" />
Run Code Online (Sandbox Code Playgroud)
或者你想要给出的任何高度和宽度.
今天有同样的问题,knitr 1.16
在编织到PDF时需要另外一个选项(这要求你安装了pandoc):
{width=70%}
此方法可能需要您进行一些试验和错误才能找到适合您的大小.它特别方便,因为它可以使两个图像并排放置更漂亮的过程.例如:
{width=70%}{width=30%}
您可以创造性地并排堆叠其中几个,并根据需要调整大小.有关更多想法和示例,请参阅https://rpubs.com/RatherBit/90926.
小智 6
另一个对我有用的选项是使用knitr::include_graphics()
像这样的 dpi 选项:
```{r}
knitr::include_graphics("path/to/image.png", dpi = 100)
```
Run Code Online (Sandbox Code Playgroud)
...与在块中定义维度相比,这肯定(除非您进行数学计算)是反复试验,但也许它会对某人有所帮助。
归档时间: |
|
查看次数: |
96016 次 |
最近记录: |