r语言 - 闪亮中的动态绘图数



我想根据用户可以选择的一些数据行在 Shiny 中显示动态数量的绘图。我做到了这一点,但是我不断得到相同的情节。正确的次数,但总是使用错误的数据。 我已经尝试过调试,但循环似乎有效。将创建三个具有绘图 ID 的"plot1"plot2"plot3"的绘图。我还检查了创建绘图的循环内的浏览器......X 和 Y 值是正确的... 有人知道我做错了什么吗?

ui <- bootstrapPage(
navbarPage("Anpassung Lastmodell",
tabPanel("Graph",
fluidRow(width=4,
uiOutput('alphaui'),
uiOutput('graphui')
)
)
)
)
server <- function(input, output, session) {
## Output Graphs
output$alphaui <- renderUI({
# Here I usually have a manually uploaded dataset, so that's why this part is in a dynamic UI
# The user selects the columns of the data he wants in the plots
alphacat <- beaver1
paramnames <- colnames(alphacat)
graphparam <- vector("list",length(paramnames))
for (i in 1:length(paramnames)) {
graphparam[[i]] <- list(checkboxInput(paste0("graphparam",i,sep=""),paramnames[i],value=FALSE))
}
graphparam[[i+1]] <-  actionButton("graph_button", "Los!",width="200px")
return(graphparam)
})
output$graphui <- renderUI({
graph <- plots()
graph
})
plots <- eventReactive(input$graph_button, {
# Selecting data to be plotted
alphacat <- beaver1 
paramnames <- colnames(alphacat)
paramnames_keep <- isolate(unlist(reactiveValuesToList(input)[paste0("graphparam",1:length(paramnames),sep="")]))
paramnames <- cbind(paramnames,paramnames_keep)
paramnames <- subset(paramnames,paramnames[,"paramnames_keep"]==TRUE,"paramnames")
graph <- list()
i <- 1
for (i in 1:length(paramnames)) {
plotname <- paste("plot",i, sep="")
x <- alphacat[,paramnames[i]]
y <- alphacat$time
output[[plotname]] <- renderPlot({
plot(x,y)
})
graph[[i]] <- plotOutput(plotname,height=330,width=300)
tagList(graph)
}
return(graph)
})
}

shinyApp(ui,server)

现在发布的代码中的问题是 y 变量未定义L

x <- alphacat[,paramnames[i]]
y <- alphacat$aq1
output[[plotname]] <- renderPlot({
plot(x,y)
})

y$aq1 不存在。因此,现在您的绘图语句 plot(x,y( 与 plot(x( 相同。(尝试在定义 y 的语句之后print(y)(

最新更新