2017-12-11 13 views
0

R 반짝이 나는 체크 된 라디오 버튼에 따라 다른 플롯 출력 유형을 렌더링하고 싶습니다. 이것은 create plots based on radio button selection R Shiny에서 볼 수 있듯이 쉽게 구현할 수 있습니다. 이제이 접근법을 더욱 발전시켜 dygraphs 및 amCharts와 같은 다양한 출력 유형으로 구현하는 방법은 무엇입니까? 내가 달성하기 위해 노력하고 무엇을 시도 : 사전에다른 플롯 출력 유형을 R으로 렌더링하는 방법 사용자 입력의 반짝이는 종속성?

library(shiny) 
library(dygraphs) 
library(amCharts) 

myData <- runif(100) 
myData <- ts(runif(72,0,10), start=c(2009, 1), end=c(2014, 12), frequency=12) 
myData 

outType <- function(x,type){ 
    switch(type, 
     A = renderPlot({ hist(x)}), 
     B = renderDygraph({ barplot(x)}), 
     C = amChartsOutput({ pie(x)})) 
} 

plotOut <- function(type,plotlabel,data){ 
    switch(type, 
     A = plotOutput(plotlabel,data), 
     B = dygraph(plotlabel,data), 
     C = plotOutput(plotlabel,data)) 
} 

runApp(list(
    ui = bootstrapPage(
    radioButtons("pType", "Choose plot type:", 
       list("A", "B", "C")), 
    plotOut('A','plot',myData) 
), 

    server = function(input, output) { 
    observe({ 
     type <<- input$pType 
     output$plot <- outType(myData, input$pType) 
    }) 
    } 
)) 

덕분에 그런

답변

1

뭔가. pType하지 A입니다, 아무것도 렌더링하지 않습니다 dygraphOutput("dygraph")pTypeB가 없습니다

conditionalPanel('input.pType=="A"', plotOutput("plot")) 
conditionalPanel('input.pType=="B"', dygraphOutput("dygraph")) 

아마도 조건 패널이 아무것도 렌더링하지 않습니다 plotOutput("plot") 때문에, 필요하지 않은 : server에서 :

output$plot <- renderPlot({ 
    validate(need(input$pType=="A", message=FALSE)) 
    hist(myData) 
}) 
output$dygraph <- renderDygraph({ 
    validate(need(input$pType=="B", message=FALSE)) 
    barplot(myData) 
}) 

ui합니다.