2017-07-21 14 views
0

ユーザーが選ぶことができるいくつかのデータ行に応じて、Shinyの動的なプロット数を表示したいとします。私はこれを達成しましたが、私は同じプロットを得ています。時間の正しい量が、間違ったデータで常に。 私はすでにデバッグを試みましたが、ループが動作するようです。プロットIDが 'plot1' 'plot2' 'plot3'の3つのプロットが作成されます。私はプロットを作成するループ内のブラウザもチェックしました... xとyの値は正しいものです... 誰かが私が間違っていることを手掛かりにしていますか?それが今、投稿されるようShinyのプロットの動的数

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) 
+0

再現可能な例がなければ、あなたを助けるのは難しいです。参照:https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example – Florian

+0

さて、私は自分のエントリを編集しました。申し訳ありませんが、コードはまだかなり残っていますが、それが必要です。 –

答えて

0

あなたのコード内の問題、yの変数がy $のAQ1が存在しないdefinedL

x <- alphacat[,paramnames[i]] 
    y <- alphacat$aq1 

    output[[plotname]] <- renderPlot({ 
    plot(x,y) 
    }) 

ではないということです。したがって、プロット文plot(x、y)はplot(x)と同じです。 (yを定義するステートメントの後にprint(y)を試してください)

+0

ああ、申し訳ありませんが、編集するのを忘れました。私のデータセットにはaq1が存在します。私はこのバージョンをテストしたとき、おそらく私の作業環境に残っていたでしょう。 aq1は本質的にデータセットの任意の固定列とすることができます。もう一度編集します。ごめんなさい! これを実行すると、x軸に表示されるデータが常に同じになるという問題があります。 –

関連する問題