Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 使用bind#u shinny()渲染的ggvis绘图是';t反应性_R_Shiny_Reactive Programming_Ggvis - Fatal编程技术网

R 使用bind#u shinny()渲染的ggvis绘图是';t反应性

R 使用bind#u shinny()渲染的ggvis绘图是';t反应性,r,shiny,reactive-programming,ggvis,R,Shiny,Reactive Programming,Ggvis,我想我缺少了ggvis+的一些基本方面 在教程之后,在server.R中使用一系列%>%管道构造绘图,以bind_shinny结尾,它将绘图与可在ui.R中引用的标识符相关联 我不明白的是,绘图本身并不像renderTable()、renderText()或reactive()中的代码那样是被动的。因此,如果我想在定义绘图时引用输入参数,如input$x,它将不起作用,我将得到一个错误,即“在没有活动-反应上下文的情况下,不允许操作。(您尝试执行的操作只能从反应表达式或观察者内部执行)。” 例如

我想我缺少了ggvis+的一些基本方面

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

我不明白的是,绘图本身并不像renderTable()、renderText()或reactive()中的代码那样是被动的。因此,如果我想在定义绘图时引用输入参数,如input$x,它将不起作用,我将得到一个错误,即
“在没有活动-反应上下文的情况下,不允许操作。(您尝试执行的操作只能从反应表达式或观察者内部执行)。”

例如,如果'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用于在dataframe中绘制数据,layeR_Path用于绘制一条垂直线,直到maxValParam值。

因此可能有用

看起来,为了在ggvis()函数中引用您的
输入$maxValParam
,整个ggvis函数需要包装在一个反应式函数中。 明目张胆地抄袭上述答案,你的答案可能看起来像:

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

你知道为什么ggvis是使用bind_shinny()函数实现的,而shinny reactive plot有自己的renderXXX()函数吗?这是可行的,但它有点令人困惑,它不一致。我不知道。。。我认为这与ggvis作为一个独立的交互有关,所以它可能需要不同的方法。Ggvis文档可能有线索。或者问问哈德利。