我想点击动作按钮刷新ggplot。我试图同时使用:eventReactive和observeEvent,它不起作用。
rm(server)
rm(map3)
ui <- fluidPage(
actionButton("button","button"),
plotOutput("rys")
)
server <- function(input, output){
map3 <- eventReactive(input$button,{
ggplot(data.frame(a=runif(10)*10,b=runif(10)*10),aes(a,b))+geom_point()
})
output$rys <- renderPlot({
map3
})
}
shinyApp(ui=ui, server=server)
请帮帮我,我在R中编码了5个小时,我很累,整个晚上都有很多工作:(
答案 0 :(得分:0)
由于您在单击按钮时似乎真的只是在更改数据,所以如何构建您的应用程序
library(shiny)
library(ggplot2)
ui <- fluidPage(
actionButton("button","button"),
plotOutput("rys")
)
server <- function(input, output){
mydata <- eventReactive(input$button,{
data.frame(a=runif(10)*10, b=runif(10)*10)
})
output$rys <- renderPlot({
if(!is.null(mydata())) {
ggplot(mydata(), aes(a,b))+geom_point()
}
})
}
shinyApp(ui=ui, server=server)
此处mydata
是一个反应性data.frame,每次单击该按钮时都会更新。然后使用更新的数据在renderPlot
调用中绘制图表。
如果您刚刚使用
,您的代码也会有用 output$rys <- renderPlot({
map3()
})
您需要使用()
来获取反应对象的值。