簡體   English   中英

如何模塊化閃亮的動態ggvis圖表?

[英]How to modularize a dynamic ggvis chart in shiny?

我的應用程序有幾個圖表,我想在一個sperate腳本中繪制它們,以便有一個更干凈的server.R ,然后只包含bind_shiny調用。

此外,因為我想回收我的圖表的一些構建塊,我想分割腳本以在較小的代碼部分中繪制圖表。

是的,我有一個chart.R文件是這樣的:

chart1 <- reactive({
  cars %>% 
    ggvis(~speed) 

})

chart2 <- reactive({
  chart1 %>% layer_bars() 
})

當然不需要反應性,但它​​將在我的原始應用中。

然后,我想在服務器上調用圖表.R這樣:

library(shiny)
library(ggvis)
source("charts.R")
shinyServer(function(input, output) {

chart2 %>% 
  bind_shiny("test1", "test1_ui")
})

ui.R

library(shiny)
library(ggvis)
shinyUI(fluidPage(

  fluidRow(titlePanel("My app")),

    fluidRow(
          column(12,
                 tags$h1("hello"),
                 ggvisOutput('test1')
                 )
    )
   )
  )

我注意到一切都在chart.R中,當我把所有東西都放在一個對象中時,如果我拆分了多個部分繪制圖表的功能,那就不行了。 但是,這樣的事情有效

> a <-  cars %>% 
+   ggvis(~speed)
> a
Guessing layer_histograms()
Guessing width = 0.5 # range / 42
> a %>% layer_bars()

任何人都可以解釋如何解決這個問題以及為什么我的兩步法在R中起作用但在Shiny中不起作用?

如果你的問題是,你不能看到的情節,那是因為在你的第二個recative語句,你需要參考chart1chart1() 換句話說,將charts.R更改為

Charts.R

chart1 <- reactive({
            cars %>% 
              ggvis(~speed)
 })

chart2 <- reactive({
           chart1() %>% layer_bars()
 })

如果您想了解更多有關反應性的信息,請查看鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM