在闪亮的仪表板中更新rCharts nvd3图表

时间:2015-09-28 10:31:32

标签: shiny nvd3.js rcharts

我已经构建了一个Shiny仪表板应用程序,该应用程序显示了大学学院的一些科学文章的度量数据。该应用位于https://ttso.shinyapps.io/2amconf,代码https://gist.github.com/tts/900b4e27bf37e8969ebd包含文件 dataforcharts.csv 的一些示例数据,这是我的问题的数据来源。

我的问题是着陆标签上的NVD3图表。

首先,它会从所选择的学校中选择最多2个项目(=文章),即开头的全部。但每当我选择一些学校 - 和 selectizeInput 然后更新该学校的项目列表 - 没有任何反应。

我试图调试正在发生的事情。

validate(
   need(!is.null(itemsData()), "Please select some items")
)

dataC <- itemsData() 

browser()

当执行停止时,我可以看到dataC确实包含所选数据。

选项(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 = 包括正确的选定数据。

我的反应值有问题吗?

观察后编辑:如果我在切换到另一所学校之前删除了所有选定的项目,则可行。

所以,经过一些试验&amp;错误,这看起来很有希望:

itemsData <- reactive({

  if( is.null(input$items) ){
   return(NULL)
  }

isolate(selectedSchoolData()[selectedSchoolData()$Title %in%
input$items, ])

})

但是我还没有超过isolate(),所以如果有人可以解释,为什么会这样,我会很感激。

1 个答案:

答案 0 :(得分:0)

我决定接受这个。

 itemsData <- reactive({

  if( is.null(input$items) ){
   return(NULL)
 }

  isolate(selectedSchoolData()[selectedSchoolData()$Title %in%
   input$items, ])

})