gpt4 book ai didi

r - 如何模块化 Shiny 的动态ggvis图表?

转载 作者:行者123 更新时间:2023-12-04 11:00:49 24 4
gpt4 key购买 nike

我的应用程序有一些图表,我想在单独的脚本中绘制它们以便更清洁server.R然后只包含 bind_shiny来电。

另外,因为我想回收图表的一些构建 block ,所以我想拆分脚本以在更小的代码部分中绘制图表。

对了,我有一个图表.R 像这样的文件:

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

})

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

当然不需要 react 性,但它​​会在我的原始应用程序中。

然后,我想调用 上的图表。服务器.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')
)
)
)
)

当我将所有内容放在一个对象中时,我注意到一切都在charts.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()
})

如果您想了解有关 react 性的更多信息,请查看 this关联。

关于r - 如何模块化 Shiny 的动态ggvis图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38250224/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com