html 在R中执行Javascript?

yyhrrdl8  于 2022-12-16  发布在  Java
关注(0)|答案(1)|浏览(126)

最近,我了解了R中的“highcharter”库(例如https://jkunst.com/highcharter/),这个库似乎可以实现许多有趣的可视化--但似乎没有原来的“highchart”javascript库(例如https://www.highcharts.com/)中的选项那么多。
我开始查看原始“highchart”库中可用的不同可视化选项,并遇到了以下可视化:https://www.highcharts.com/demo/packed-bubble-split
我在这里看到有一个选项可以查看用于这些可视化的源代码:

最近,我一直在学习如何在R中执行HTML和Javascript代码(例如R markdown)。

我有没有可能把这里提供的代码用R来呈现,从而在R中产生完全相同的可视化效果?

vi4fp9gy

vi4fp9gy1#

是的,这在RMarkdown中是可能的(我假设是夸托,尽管我还没有做改变;- ).
关键在于
1.将JS库加载到HTML文档的主体中;在R代码块中使用htmltools可以很容易地做到这一点。你可以在HTML部分中看到相关的JS库,如给定的in the JS fiddle

```{r, echo = FALSE}
htmltools::tagList(
  htmltools::tags$script(src = "https://code.highcharts.com/highcharts.js"),
  htmltools::tags$script(src = "https://code.highcharts.com/highcharts-more.js"),
  htmltools::tags$script(src = "https://code.highcharts.com/modules/exporting.js"),
  htmltools::tags$script(src = "https://code.highcharts.com/modules/accessibility.js")
)

1.将`<div>`元素直接放置在RMarkdown文档中

1.最后,将JS代码包含在一个JS代码块中,我们使用echo = FALSE隐藏其输出

```{js, echo = FALSE}
// JS code goes in here

JS代码是完整的“Javascript + No-library(pure JS)”代码,它包含数据并构造打包的气泡图,如给定的[in the JS fiddle](https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/demo/packed-bubble-split)。
我已经将[reproducible Gist](https://gist.github.com/mevers/eb4b8eeb000752fd87f81aaf6647e978)与完整的示例Rmd文档放在一起,其中包括[https://www.highcharts.com/demo/packed-bubble-split](https://www.highcharts.com/demo/packed-bubble-split)中的JS代码。
编织Rmd文档,然后给出下面的图(这里是交互式静态屏幕截图

![](https://i.stack.imgur.com/Xhxne.png)

相关问题