Rat*_*nil 6 r knitr r-markdown plotly bookdown
我使用的是bookdown包RMarkdown产生类似的基于Web的书这,同样与选项来下载图书的PDF版本。
我plotly在我的“书”中包含了图表,这些图表在本书的 html 版本中运行良好。作为交互式,在 YAML 标头中包含 pdf 输出时,“构建书”按钮会引发错误。
基于此描述,我找到了一种使用常规 RMarkdown 文件的解决方法来创建带有plotly图形输出的pdf 。一个最小的解决方案(外部 bookdown)如下所示:
---
title: "test"
output:
pdf_document: default
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(plotly)
Sys.setenv("plotly_username" = "username")
Sys.setenv("plotly_api_key" = "API")
```
```{r cars}
library(plotly)
p <- plot_ly(x = c(1,2,3,4), y = c(2,4,1,3), type = 'scatter', mode = 'lines')
plotly_IMAGE(p, format = "png", out_file = "output.png")
```

Run Code Online (Sandbox Code Playgroud)
有没有办法将这个解决方案包含在 bookdown 中,以便图表在 html 输出中自动交互,在 pdf 输出中静态(png)?
基于这篇博文,我想出了一个解决方案。注意,这仅适用于
(1) 请参阅此链接以在本地导出静态图像(由于安装失败,所以我没有开始工作PhantomJS)
(2) Plotly 的用户配额目前为每个用户每天 100 个绘图/网格
---
title: "test"
output:
html_document: default
pdf_document: default
word_document: default
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(plotly)
library(pander)
Sys.setenv("plotly_username" = "YOUR PLOTLY USERNAME")
Sys.setenv("plotly_api_key" = "API KEY")
output <- knitr::opts_knit$get("rmarkdown.pandoc.to") # html / latex / docx
```
```{r, results="asis"}
print(output)
p <- plot_ly(x = c(1,2,3,4), y = c(2,4,1,3), type = 'scatter', mode = 'lines')
filename <- "output.png"
if(output %in% c("latex","docx")){
plotly_IMAGE(p, format = "png", out_file = filename)
pandoc.image(filename)
} else if(output == "html"){
p
} else(print("No format defined for this output filetype"))
```
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
863 次 |
| 最近记录: |