我的输出图取决于名为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的特定问题吗?)
答案 0 :(得分:2)
通过在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)
不确定为什么这会解决问题,但包含此环境设置会使图表在客户端按预期更新。