在 Shiny 仪表板中更新 rCharts nvd3 图表
Updating rCharts nvd3 chart in Shiny dashboard
我构建了一个闪亮的仪表板应用程序,它显示了大学学院科学文章的一些指标数据。该应用程序位于 https://ttso.shinyapps.io/2amconf and the code https://gist.github.com/tts/900b4e27bf37e8969ebd,其中包含文件 dataforcharts.csv 的一些示例数据,这是我的问题的数据源。
我的问题是登陆选项卡上的 NVD3 图表。
首先,它从所选学校中提取 OK selected 最多 2 个项目(=articles),开头是 All。但是每当我 select 一些学校 - 并且 selectizeInput 然后更新该学校的项目列表 - 没有任何反应。
我已经尝试调试正在发生的事情。
validate(
need(!is.null(itemsData()), "Please select some items")
)
dataC <- itemsData()
browser()
当执行停止时,我可以看到 dataC 确实包含所选数据。
options(shiny.trace=TRUE) 的控制台输出很健谈,但我无法真正理解它试图告诉我的内容。这是图表应该使用新数据呈现但没有呈现的最后一条消息的片段。
SEND {"errors":[],"values":{"chart":"<style>.rChart {width: 800px;
height: 400px} </style>\n<script type='text/javascript'>\n
$(document).ready(function(){\n drawchart()\n });\n
function drawchart(){ \n var opts = {\n \"dom\":
\"chart\",\n\"width\": 800,\n\"height\": 400,\n\"x\":
\"id\",\n\"y\": \"value\",\n\"group\": \"variable\",\n\"type\":
\"multiBarChart\",\n\"id\": \"chart\" \n},\n data =
[ TEXT CUT OFF ] drawchart(){ \n n return chart;\n
});\n };\n</script>"},"inputMessages":[]}
同样,data= 包含正确的选择数据。
我的反应值有问题吗?
观察后编辑:如果我在切换到另一所学校之前删除所有 selected 项目,这有效。
因此,经过反复试验,这看起来很有希望:
itemsData <- reactive({
if( is.null(input$items) ){
return(NULL)
}
isolate(selectedSchoolData()[selectedSchoolData()$Title %in%
input$items, ])
})
但我还没有完全理解 isolate() 所以如果有人能解释为什么它有效,我将不胜感激。
我决定接受这个。
itemsData <- reactive({
if( is.null(input$items) ){
return(NULL)
}
isolate(selectedSchoolData()[selectedSchoolData()$Title %in%
input$items, ])
})
我构建了一个闪亮的仪表板应用程序,它显示了大学学院科学文章的一些指标数据。该应用程序位于 https://ttso.shinyapps.io/2amconf and the code https://gist.github.com/tts/900b4e27bf37e8969ebd,其中包含文件 dataforcharts.csv 的一些示例数据,这是我的问题的数据源。
我的问题是登陆选项卡上的 NVD3 图表。
首先,它从所选学校中提取 OK selected 最多 2 个项目(=articles),开头是 All。但是每当我 select 一些学校 - 并且 selectizeInput 然后更新该学校的项目列表 - 没有任何反应。
我已经尝试调试正在发生的事情。
validate(
need(!is.null(itemsData()), "Please select some items")
)
dataC <- itemsData()
browser()
当执行停止时,我可以看到 dataC 确实包含所选数据。
options(shiny.trace=TRUE) 的控制台输出很健谈,但我无法真正理解它试图告诉我的内容。这是图表应该使用新数据呈现但没有呈现的最后一条消息的片段。
SEND {"errors":[],"values":{"chart":"<style>.rChart {width: 800px;
height: 400px} </style>\n<script type='text/javascript'>\n
$(document).ready(function(){\n drawchart()\n });\n
function drawchart(){ \n var opts = {\n \"dom\":
\"chart\",\n\"width\": 800,\n\"height\": 400,\n\"x\":
\"id\",\n\"y\": \"value\",\n\"group\": \"variable\",\n\"type\":
\"multiBarChart\",\n\"id\": \"chart\" \n},\n data =
[ TEXT CUT OFF ] drawchart(){ \n n return chart;\n
});\n };\n</script>"},"inputMessages":[]}
同样,data= 包含正确的选择数据。
我的反应值有问题吗?
观察后编辑:如果我在切换到另一所学校之前删除所有 selected 项目,这有效。
因此,经过反复试验,这看起来很有希望:
itemsData <- reactive({
if( is.null(input$items) ){
return(NULL)
}
isolate(selectedSchoolData()[selectedSchoolData()$Title %in%
input$items, ])
})
但我还没有完全理解 isolate() 所以如果有人能解释为什么它有效,我将不胜感激。
我决定接受这个。
itemsData <- reactive({
if( is.null(input$items) ){
return(NULL)
}
isolate(selectedSchoolData()[selectedSchoolData()$Title %in%
input$items, ])
})