无法通过R闪亮的动态UI呈现两次googlevis图表

时间:2016-08-24 14:27:47

标签: r shiny googlevis dynamic-ui

拥有这段代码。我无法让它绘制两次图表。 按以下顺序尝试文本框的输入值:

  1. 1,2和6
  2. 1,6和2
  3. 例如,它只绘制一次图表。例如2,它只绘制两次(因为它们是不同的图表) 我可以根据用户的需要多次提示这项工作吗?

    // StackOverflow requires code in order to link codepens!
    $(window).load(function() {
        $('.cssload-whirlpool').fadeOut();
        $('.preloader').delay(350).fadeOut('slow');
        $('body').delay(350).css({'overflow':'visible'});
    })
    

1 个答案:

答案 0 :(得分:1)

感谢专家的帮助,我能够理解为什么会这样。问题在于html试图找出正在呈现的图表。只有在我们拥有动态用户界面并且在调用相同的googlevis图表的情况下,它才会出现。 由于某种原因,它不知道哪个图表被引用,因此不会填充。我当然不是很了解HTML,我的陈述可能没有定论。 然而,它通过在渲染图表时添加图表ID来工作。

粘贴下面的代码,希望将来也可以帮助某人。

server <- function(input, output) {     

observeEvent(input$go, {
output$plot1 <- renderGvis({
df <- data.frame(country=c("US", "GB", "BR"),
               val1=c(10,33,44),
               val2=c(23,122,342))

Sys.sleep(0.3)
gvisBarChart(df, xvar="country",chartid = "plot1",
yvar=c("val1", "val2"),
           options=list(isStacked=TRUE, height = 300, width = 400))

})

output$plot2 <- renderGvis({
df <- data.frame(country=c("IND", "RUS", "BR"),
               val1=c(10,3333,244),
               val2=c(2344,122,342))

Sys.sleep(0.3)
gvisBarChart(df, xvar="country", chartid = "plot2",
             yvar=c("val1", "val2"),
             options=list(isStacked=TRUE, height = 300, width = 400))
})
  output$ui <- renderUI({

    if(isolate(as.numeric(input$textbox)) %in% c(1,2,3)){
      box(title = "ABC", width = 10, height = 550, htmlOutput("plot1",height = 500))    
    }else{
      box(title = "DEF", width = 4, height = 550, htmlOutput("plot2",height = 500))    

    }


  })
})  
}

虽然我已经解决了googlevis图表的问题,但我仍然在努力寻找如何对传单包中的地图做同样的事情。任何指针都非常受欢迎。 感谢。