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.,属于该框架的早期官方资料。