htmlwidgets for R 是什么网站?

更新时间

htmlwidgets.org 是 R 语言生态中 HTML widgets 框架的官方站点。它解决的核心问题是:让 R 用户不必写 JavaScript,就能在 R 控制台、R Markdown 文档和 Shiny 应用里直接使用基于 JavaScript 的交互式可视化。如果你已经在用 R 做数据分析,又想要可交互的图表而不是静态图片,这个站点就是入口;如果你打算把某个 JavaScript 可视化库接入 R,它也是开发文档的来源。

它提供什么

站点围绕三件事组织内容:

  • 框架本身:一套在 R 和 JavaScript 之间建立桥接的机制,让 JavaScript 可视化库能以 R 函数的形式调用。
  • 展示区(Showcase):用实际例子演示 widgets 能做什么,包括在 R 控制台、R Markdown 文档和 Shiny 应用中的使用方式。
  • 组件库(Gallery):收录 50 多个可用的 widgets,按可视化类型分类浏览。

能用来做什么

按站点首页的说明,HTML widgets 的工作方式“就像 R 绘图一样,只不过产出的是交互式网页可视化”。一行或两行 R 代码就能生成一个 D3 图形或 Leaflet 地图。

首页列出的代表性 widgets 包括:

Widget 用途
Leaflet 地理空间地图
dygraphs 时间序列图表
Plotly 基于 D3 的交互式图形
rbokeh Bokeh 的 R 接口
Highcharter Highcharts 的 R 接口
visNetwork 基于 vis.js 的网络图可视化
networkD3 基于 D3 的网络图可视化
DataTables 表格数据展示
threejs 3D 散点图与地球仪
rglwidget 渲染 rgl 创建的场景
DiagrammeR 图表与流程图
MetricsGraphics 基于 D3 的散点图与折线图

这些 widgets 可以三种方式使用:在 R 控制台直接调用、嵌入 R Markdown 报告、嵌入 Shiny Web 应用。

组合与联动

单个 widget 之外,站点还指向两个扩展方向:

  • Flexdashboard:把多个 htmlwidgets 组合成一个仪表盘,提供基于行和列的灵活布局。
  • Crosstalk:把多个 widgets 连接起来,目前支持 widgets 之间的联动刷选(linked brushing)和客户端筛选。需要更复杂的交互时,站点建议改用 Shiny。

面向开发者

除了使用现成 widgets,站点还有 “Develop” 部分,讲如何为你偏好的 JavaScript 库创建 R binding,使其能在 R 控制台、R Markdown 文档和 Shiny 应用中使用。另有 “Widget sizing” 和 “Advanced topics” 等进阶内容。

适合谁

  • 想在 R 里快速做出交互式图表的分析人员:从 Gallery 挑一个 widget,按 Showcase 的示例调用即可。
  • 需要把多个图表组织成仪表盘的人:看 flexdashboard 和 crosstalk 部分。
  • 想把新的 JavaScript 可视化库接入 R 的开发者:看 Develop 部分。

站点版权信息显示为 2014–2015 年 Ramnath Vaidyanathan、Kenton Russell 和 RStudio, Inc.,属于该框架的早期官方资料。