shiny - 如何使用 R2D3 使我的 Rshiny 应用程序中的用户输入与我的 R.js 文件动态交互?
问题描述
当我运行预览选项时,我有一个 d3.js 脚本作为 R.js 运行良好,但我无法让它在 RShiny 中正常运行。输入没有重新渲染输出,颜色也不是我在 js 中设置的方式。我有一个包含多列的数据框,我想根据用户输入选择列,以输入 RShiny 中将调用 d3.js 的 R2D3 函数调用。
---我在一列中设置了带有id的csv(将始终被拉出),并为所有其他列设置了值,即使它们最初代表“行星半径”等值......所以我不不必处理更改列名。
下面的代码只是我尝试过的最新版本。在尝试为输入变量设置为df变量创建一个单独的反应块之前,我已经经历了很多事情,稍后将在使用df()的r2d3函数调用中调用该变量。在这一点上,我没有选择并且心不在焉。
我在 d3js 脚本或 Rshiny 中是否缺少某些东西?正如我在其他帖子中看到的那样,我已经使用 includeScript() 在 ui 中设置了脚本。
我正在使用的 d3 脚本在这里:https ://rstudio.github.io/r2d3/articles/gallery/bubbles/
我已经在我的驾驶室里尝试了所有东西(这并不多),我的意思是在这上面花了 20 个小时,但我无法让它工作。
library(shiny)
library(r2d3)
planets <- read.csv("grouped.csv")
columnList = c("Orbital Period [days]", "Orbital Semi-Major Axis [AU]",
"Eccentricity", "Planet Mass [Earths]",
"Planet Radius [Earths]", "Optical Magnitude", "Distance From
Earth [Parsecs]", "Planet Density [g/cm3]")
ui <- fluidPage(
includeScript(path = "bubbs1.js"),
selectInput(inputId = "two", label = "Data Field", choices = columnList, selected = "Distance From Earth [Parsecs]"),
d3Output("d3")
)
server <- function(input, output) {
output$d3 <- renderD3({
if (input$two == "Orbital Period [days]"){
r2d3(data = planets[,c(10,3)], script = "bubbs1.js", d3_version = "4")
}
if (input$two == "Orbital Semi-Major Axis [AU]"){
r2d3(data = planets[,c(10,4)], script = "bubbs1.js", d3_version = "4")
}
if (input$two == "Eccentricity"){
r2d3(data = planets[,c(10,5)], script = "bubbs1.js", d3_version = "4")
}
if (input$two == "Planet Mass [Earths]"){
r2d3(data = planets[,c(10,6)], script = "bubbs1.js", d3_version = "4")
}
if (input$two == "Planet Radius [Earths]"){
r2d3(data = planets[,c(10,7)], script = "bubbs1.js", d3_version = "4")
}
if (input$two == "Optical Magnitude"){
r2d3(data = planets[,c(10,8)], script = "bubbs1.js", d3_version = "4")
}
if (input$two == "Distance From Earth [Parsecs]"){
r2d3(data = planets[,c(10,9)], script = "bubbs1.js", d3_version = "4")
}
r2d3(data = planets[,c(10,9)], script = "bubbs1.js", d3_version = "4")
})
}
shinyApp(ui = ui, server = server)
首先,我只希望下拉菜单中的反应性起作用,如果您能帮助我使用此功能,我将设计其余部分。最终,我希望它是交互式的(点击功能,如气泡改变颜色,显示输出文本框)。
解决方案
推荐阅读
- kubernetes - 错误 - 无法附加或挂载卷:未挂载的卷=[数据]
- javascript - 无法在一页中插入 03 弹出窗口
- spring - 带有 Azure AD 的 Spring Security 不会重定向
- python - 如何通过 Selenium Python 刮取 AWS SSO 凭证
- python - 如何在python中创建一个标志以包含/排除数据框中的行
- javascript - 使用 JavaScript 提交时从 DOM 中删除所有空表单字段
- arrays - 在 Python 中使用带有 return 或 print 的 array.sort() 时返回空数组
- r - R:如何根据多列重塑宽
- reactjs - onChange useState 后一字符
- angular - 显示更多/显示更少 ngFor 按钮点击数据