在 R 演示文稿中添加本地图片文件

15

我正在使用R Markdown来制作R演示文稿,并且想要包含一个图像文件(.png)。我按照这个建议的方法进行:如何在Markdown中使用knitr导入本地图片,但是当我使用![title](my.png)时,出现以下错误:

Error: unexpected '[' in "!["

my.png文件在当前路径中。我也尝试使用绝对路径,但得到了相同的错误信息。

把上述内容放在R代码块中也失败了。

我还尝试过

```{r,fig.width=350, fig.height=250,echo=FALSE}
library(png)
library(grid)
appimg <- readPNG('my.png')
grid.raster(appimg)
```

但是也失败了!

我正在使用Windows 7上的R Studio 0.98.1102和R 3.2.1。


你尝试过使用链接中提到的HTML语法吗? - Rohit Das
感谢您的评论!使用HTML语法收到了类似的错误消息。 - ponyhd
你不需要引用你的图像名称。 - scribbles
谢谢,但是我尝试了使用引号和不使用引号两种方法都失败了。 - ponyhd
4个回答

20

经过大量的谷歌搜索,我终于找出了问题所在。

关键是HTML由于安全原因不能引用本地文件。除非它是一个本地HTML文件,那么它就可以引用同一文件目录中的本地文件。

R演示其实就像一个网页一样是一个HTML文件。

所以,只需将您的图像文件与HTML文件放在同一目录中,事情就能正常工作。至少对我而言是如此。

只需使用

![某些标题](img_file_name.png)


4
如何对使用这种方式添加到 R 演示文稿中的图像进行缩放和居中处理? - myusrn

6

去掉引号对我有用,注意在使用时不要在命名图像时保留任何空格

![title](my_image.png)

在这种情况下,使用引号或者有空格(重新命名后)并没有起作用。


4
'Imager'包使得这个过程变得非常简单:
library(imager)
myimg <- load.image("<pathto>/file.png")
plot(myimg)

谢谢,我们如何在这个包中移除图表的x和y轴? - ah bon
1
这是常规的基础R plot()命令,因此plot(myimg, axes=FALSE)将像往常一样工作。请参见:https://dev59.com/hnM_5IYBdhLWcg3w9oMA - Brian D

3
如果您的输出格式是:slidy_presentation,您可以使用以下HTML代码: <img src="/Users/name/folder/xyz.png";> 此外,如果您希望将图像对齐并调整到特定的一侧(例如最终输出的右侧)并指定大小,则可以使用以下代码: <img src="/Users/name/folder/xyz.png"; style="max-width:280px;float:right;">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接