如何使用knitr的降价来设置局部图像的大小?(How to set size for local

2019-07-23 08:46发布

我有,我想在一个包含本地图像.Rmd文件,我会再knit并转换成HTML幻灯片与Pandoc 。 每这篇文章 ,这将插入本地图片:
![Image Title](path/to/your/image)

有没有修改这个代码也设置图像大小的方法吗?

Answer 1:

您也可以使用读取图像png包例如,绘制它像使用普通的情节grid.rastergrid包。

```{r fig.width=1, fig.height=10,echo=FALSE}
library(png)
library(grid)
img <- readPNG("path/to/your/image")
 grid.raster(img)
```

使用这种方法,你有你的图像的大小的完全控制。



Answer 2:

现在的问题是老了,但还是受到了很多的关注。 由于现有的答案是过时的,这里更多了最新的解决方案:

调整本地图片

作为knitr 1.12 ,有功能include_graphics 。 从?include_graphics重点煤矿):

使用该功能的主要优点是,它是,它适用于所有的文档格式有义便携式knitr支持,所以您不必想,如果你有使用,例如,乳胶或减价的语法,嵌入的外部形象。 有关图形输出工作正常[R曲线也为这些图像,如工作块选项out.widthout.height

例:

```{r, out.width = "400px"}
knitr::include_graphics("path/to/image.png")
```

好处:

  • 在agastudy的回答 :无需外部库或重新光栅图像。
  • 在思鲁提卡普尔的答案 :无需手动编写HTML。 此外,图像包含在文件中的自包含的版本。

包括生成的图像

要撰写的路径是在块中产生 (但不包括),块选项情节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文件)。



Answer 3:

未更新的答案:在knitr 1.17 ,你可以简单地使用

![Image Title](path/to/your/image){width=250px}


Answer 4:

下面是保持自足而不retastering图像文件的一些选项:

裹在图像div标签

<div style="width:300px; height:200px">
![Image](path/to/image)
</div>

使用样式表

test.Rmd

---
title: test
output: html_document
css: test.css
---

## Page with an image {#myImagePage}

![Image](path/to/image)

test.css

#myImagePage img {
  width: 400px;
  height: 200px;
}

如果你有一个以上的图像,你可能需要使用的第n个孩子伪选择第二种选择。



Answer 5:

如果要转换为HTML,您可以设置使用使用HTML语法图像的大小:

  <img src="path/to/image" height="400px" width="300px" />

或任何高度和宽度,你会想放弃。



Answer 6:

有同样的问题今天发现了另一种选择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更多的想法和范例。



Answer 7:

该knitr :: include_graphics解决方案行之有效的调整数据,但我无法弄清楚如何使用它来产生并排侧调整的数字。 我发现这个职位这样做是有用的。



Answer 8:

为我工作的另一种选择是玩的DPI选项knitr::include_graphics()是这样的:

```{r}
knitr::include_graphics("path/to/image.png", dpi = 100)
```

...这肯定(除非你做数学题)是试错相比于块定义尺寸,但也许这将帮助别人。



文章来源: How to set size for local image using knitr for markdown?