首页 > 解决方案 > 如何从 Json 文件格式的 R 分析中获取数据以获取 D3 可视化?

问题描述

我想获取 Json 文件作为分析结果,并作为 D3 代码的输入并获得可视化...有什么办法吗

我尝试在 R 中搜索很多东西以获取 json 文件的结果,但没有任何改进。

标签: javascriptrd3.js

解决方案


如果您使用的是闪亮的,那么您可以像反向 Ajax 一样将消息从 R 发送到 JavaScript:

首先你需要 JS 中的处理程序:

Shiny.addCustomMessageHandler("d3vis", function(json) {
   //d3 code that process json data
});

注意:默认情况下,不会定义 Shiny 对象,因为它在setTimeout(0)jQuery 就绪函数内部初始化,因此您还需要$(function() { setTimeout(init, 0); });在 init 函数内部调用自定义事件处理程序。

并在 R 中发送消息:

## example data
data <- list(
  x = list(1, 2, 3),
  y = list(10, 20, 30)
)
session$sendCustomMessage("d3vis", data)

数据将通过使用 websockets 或 XHR 长拉的闪亮发送转换为 JSON,具体取决于设置,并将在 JavaScript 中解析,您的处理程序将在您可以使用 D3 呈现可视化的地方被调用。

您还可以使用反应性来使用交互式可视化:

observe({
  ## reactive data
  data <- list(
     x = list(input$x1, input$x2, input$x3),
     y = list(input$y1, input$y2, input$y3)
   )
   session$sendCustomMessage("d3vis", data)
})

推荐阅读