繁体   English   中英

使用bind_shiny()渲染的ggvis图不是反应性的

[英]ggvis plots rendered using bind_shiny() aren't reactive

我想我错过了ggvis + shiny的一些基本方面。

在教程之后,使用一系列%>%管道在server.R中构建绘图,以bind_shiny结尾,该绘图将绘图与可在ui.R中引用的标识符相关联。

我没有得到的是,绘图本身并不像renderTable(),renderText()或reactive()中的代码那样具有反应性。 因此,如果我想在定义绘图时引用输入参数(如输入$ x),它将无法工作,我将收到一条错误消息"Operation not allowed without an active reactive context. (You tried to do something that can only be done from inside a reactive expression or observer.)"

例如,如果'input'是shinyServer函数的输入参数,我可能会有一个如下的图:

dataframe %>% ggvis(~ aval, ~ bval) %>% layer_points %>% layer_paths(x = ~xv, y = ~ yv, data = data.frame(xv = c(0, 0), yv = c(0, input$maxValParam)))

其中layeR_points用于绘制数据框中的数据,而layer_paths用于绘制直到maxValParam值的垂直线。

所以这个答案可能会有用。

看起来为了在ggvis()函数中引用你的input$maxValParam ,整个ggvis函数需要被包含在被动中。 公然扯掉上面的答案,你的看起来像是这样的:

reactive({
  dataframe %>% 
      ggvis() #rest of plotting code %>% 
      add_axis("x", title = input$maxValParam)
}) %>% bind_shiny("plot")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM