r - HTML 小部件不会在 ioslides 演示文稿中呈现

标签 r r-markdown ioslides

在下面的 ioslides 演示中,visNetwork 图表对我来说是空白的,但它在 Slidy 和 Reveal.js 中渲染得很好。我已经尝试了 htmlwidgetsrmarkdown 的最新 CRAN 和开发版本。

---
title: "slides"
output: ioslides_presentation
---

## The HTML widget should render.

```{r}
library(visNetwork, quietly = TRUE)
visNetwork(data.frame(id = 1:3), data.frame(from = c(1,2), to = c(1,3)))
```

我宁愿在当前演示文稿中坚持使用 ioslides,因为我需要一些不坚持 Reveal.js 的自定义 CSS。

> sessionInfo()
R version 3.4.0 (2017-04-21)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Red Hat Enterprise Linux Server release 6.9 (Santiago)

Matrix products: default
BLAS: /opt/R/R-3.4.0/lib64/R/lib/libRblas.so
LAPACK: /opt/R/R-3.4.0/lib64/R/lib/libRlapack.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8       
 [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] devtools_1.13.2

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.11         revealjs_0.9         digest_0.6.12        withr_1.0.2         
 [5] rprojroot_1.2        R6_2.2.2             backports_1.1.0      git2r_0.18.0        
 [9] magrittr_1.5         evaluate_0.10        highr_0.6            httr_1.2.1          
[13] stringi_1.1.5        curl_2.6             rmarkdown_1.6.0.9001 tools_3.4.0         
[17] stringr_1.2.0        yaml_2.1.14          rsconnect_0.8        compiler_3.4.0      
[21] memoise_1.1.0        htmltools_0.3.6      knitr_1.16 

编辑2019-05-12

@Esteban Moro,widgetframe 绝对有帮助。但仍有工作要做,至少对我来说是这样。下面,我展示了 iotest.Rmd,它生成一个空的 iotest_files。有什么想法吗?

---
title: "slides"
output: ioslides_presentation
---

## The HTML widget should render.

```{r}
library(visNetwork, quietly = TRUE)
library(widgetframe)
frameWidget(visNetwork(data.frame(id = 1:3), data.frame(from = c(1,2), to = c(1,3))))
```

enter image description here

> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.2 LTS

Matrix products: default
BLAS:   /home/landau/R/R-3.6.0/lib/libRblas.so
LAPACK: /home/landau/R/R-3.6.0/lib/libRlapack.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] widgetframe_0.3.1 htmlwidgets_1.3   visNetwork_2.0.6 

loaded via a namespace (and not attached):
 [1] compiler_3.6.0  magrittr_1.5    htmltools_0.3.6 tools_3.6.0    
 [5] yaml_2.2.0      Rcpp_1.0.1      rmarkdown_1.12  knitr_1.22     
 [9] jsonlite_1.6    xfun_0.6        digest_0.6.18   evaluate_0.13 

编辑2019-05-13

我在 YAML Front Matter 中尝试了 selfcontained: false,但小部件仍然没有出现。 selfcontained: true 的结果相同。

---
title: "slides"
output:
  ioslides_presentation:
    selfcontained: false
---

## The HTML widget should render.

```{r}
library(visNetwork, quietly = TRUE)
library(widgetframe)
frameWidget(visNetwork(data.frame(id = 1:3), data.frame(from = c(1,2), to = c(1,3))))
```

enter image description here

最佳答案

对于ioslides,我使用R中的widgetframe库解决了它

library(visNetwork, quietly = TRUE)
library(widgetframe)
frameWidget(visNetwork(data.frame(id = 1:3), data.frame(from = c(1,2), to = c(1,3))))

编辑 2019 年 5 月 15 日

这是一个适合我的最小示例:

---
title: "slides"
output: 
  ioslides_presentation:
    self_contained: FALSE
---

```{r setup, include=F}
knitr::opts_chunk$set(widgetframe_widgetsdir = 'widgets')
library(visNetwork, quietly = TRUE)
library(widgetframe)
```


## The HTML widget should render.
```{r}
frameWidget(visNetwork(data.frame(id = 1:3), 
                       data.frame(from = c(1,2), to = c(1,3))))
```

关于r - HTML 小部件不会在 ioslides 演示文稿中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45103219/

相关文章:

html - 使用教程包在 ioslides 演示中使用 datacamp light 练习

r - Stargazer() 不适合页面

r - 如何替换数据表中值的单个组件?

r - 禁用鼠标单击以在 rmarkdown slidy_presentation 中显示另一张幻灯片

r - 如何在 R 或 RMarkdown 中向每个单独导出的 PDF 报告添加文本?

css - 如何在 r markdown ioslides 演示文稿中的代码块中启用语法突出显示?

r - R6 类中的静态方法

c++ - 逐元素矩阵乘法 : R versus Rcpp (How to speed this code up? )

r - 使用 rmarkdown 在 pdf 中插入 GIF

css - 有没有RMarkdown "ioslides-CSS"引用指南?