7

有一篇博客文章描述了将 R 的 plotly API 嵌入到 R markdown 中。我只是使用代码为 html 文档创建 iframe

当我在 R studio 中进行预览时,没有错误消息,并且 iframe 是在 html 文档中创建的。然而,它只是空的。显然它不会以某种方式加载内容。我没有事先在 R API 中创建绘图(但这应该没关系,因为这只是将图片嵌入到 html 中)不是吗?

我在 r markdown 中的代码目前是

```{r}
library("knitr")
library("devtools")
url<-"https://plot.ly/~etpinard/251"
plotly_iframe <- paste("<iframe scrolling='no' seamless='seamless' src='", url, 
    "/800/600' width='800' height='600'></iframe>", sep = "")

```
`r I(plotly_iframe)`
4

2 回答 2

7

我们第一次发布 RPub 时遇到了同样的问题。是您在已发布的 RPub 中的代码。

一旦它在 RPubs.com 上发布而不是预览版,图表就会显示出来。您可以使用 RPubs 中的“在浏览器中打开”选项对其进行测试:

RPub

一张纸条。我更改height为 800 和width650,因为该图有点高。我还添加了一个<center>标签,将其放置在已发布版本的中心。

Plotly 还有一个用于嵌入的目标 URL。在这种情况下,它是https://plot.ly/~etpinard/251.embed。RPubs 似乎并不喜欢这样。您也可以borderwidth尝试看看是否可以关闭边框。

这就是说:图表不会显示在预览中。我相信这是浏览器的限制,因为 RStudio 还不允许发布实时 Web 内容。

如果您有兴趣并想要一些示例代码,这里是嵌入 Plotly 和 ggplot2 绘图的博客文章的来源。希望这可以帮助!披露:我为 Plotly 工作。

更新:2015 年 8 月 21 日

前往 Plotly 文档以查看此答案的R Markdown版本。在 R 控制台中打印绘图对象会创建一个在线图形。例如:

p <- plot_ly(economics, x = date, y = uempmed, filename="r-docs/knitr-example")

如果您使用带有 HTML 输出的 knitr/R Markdown,打印plotly对象现在会将绘图作为 iframe 嵌入到 HTML 中。如果您正在使用 R Markdown 编写文档,只需打印即可p嵌入绘图。

您还可以使用宽度和高度代码块参数设置绘图的宽度和高度。例如:{r, height=800} 设置高度。

如果您将Plotly Offline 与 R Studio 一起使用,则在 knitr 中打印 plotly 对象还将包括绘制图形所需的 plotly.js 文件:图形在文档内本地呈现。

要将 knitr 文档转换为独立的 HTML 文件,请使用knitr::knitmarkdown::markdownToHTML. 例如:

knitr::knit('plotly-report.Rmd', 'plotly-report.md')
markdown::markdownToHTML('plotly-report.md', 'plotly-report.html')
于 2014-08-07T21:38:10.583 回答
2

我必须在我的网址后添加一个“.embed?width=550&height=550”才能使其正常工作。见下文

```{r}
library("knitr")
library("devtools")
url<-"https://plot.ly/yourplothere.embed?width=550&height=550" 
plotly_iframe <- paste("<center><iframe scrolling='no' seamless='seamless' style='border:none' src='", url, 
    "/800/1200' width='800' height='1200'></iframe><center>", sep = "")

```
`r I(plotly_iframe)`
于 2015-02-10T04:27:06.837 回答