3

我有一个输出图,它依赖于一个名为datasetInput. 每当我更改输入变量时,输出函数都会更新,但我在客户端看到的图并没有最终改变。我输出了 ggplot 用来生成绘图的数据,并且数据正在发生变化。我不确定发生了什么事。

datasetInput <- reactive({    
    data <- input$globalData
    table <- c()
    ...
    table
})

output$plot <- renderPlot({    
    table <- datasetInput()   
    cat('32hr: ',unlist(table[which(table$group=='32hr'),3]),'\n')     
    cat('24hr: ',unlist(table[which(table$group=='24hr'),3]),'\n')     
    range <- max(table$centroidDistances.RG) - min(table$centroidDistances.RG)
    cat('range: ',range,'\n')
    plot <- ggplot(table,aes(x=table$centroidDistances.RG,fill=table$group)) + 
        geom_histogram(aes(y=..density..),pos="dodge") +
        geom_density(alpha=0.2)
    print(plot)
},height=300,width=600)

我以前没有见过这个问题,如何让客户端在更改时更改其输出output$plot(这是 ggplot 的特定问题吗?)

4

1 回答 1

3

这个问题似乎可以通过在 ggplot 中设置 environment = environment() 来解决:

ggplot(table,aes(x=table$centroidDistances.RG,fill=table$group),environment=environment()) + 
  geom_histogram(aes(y=..density..),pos="dodge",binwidth=range/30,minx=0,width=600) +
  geom_density(alpha=0.2)

不知道为什么这会解决问题,但包括此环境设置会使图形在客户端按预期更新。

于 2013-07-16T18:29:14.207 回答