首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在没有闪亮会话的情况下使用renderPlot的结果?

是否可以在没有闪亮会话的情况下使用renderPlot的结果?
EN

Stack Overflow用户
提问于 2019-11-04 07:17:09
回答 1查看 197关注 0票数 0

我创建了一个仪表板,它根据每8小时更新一次的数据显示一个图。这些数据是通过cron作业的Python脚本更新的,因此R/shiny仅用于绘图/仪表板。这个图是通过几个reactive函数创建的,最后是一个renderPlot。是否可以在没有闪亮上下文的情况下调用或导入这些反应性函数,这样我就可以在不运行仪表板的情况下创建绘图了?

最后的目标是创建绘图,并在每次从Python更新数据时保存/发送它,而不需要重复的R代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-04 07:26:21

我认为最好的方法是创建一个包。

例如,如果通过{golem}框架构建应用程序,则可以在应用程序之外使用内部“业务”函数。

所以我们的想法是:

  • 构建接受输入并生成绘图
  • 的函数,在renderPlot.

中使用该函数。

例如:

在图谋中。

代码语言:javascript
复制
my_plot <- function(dataset){
  ggplot(dataset, aes(Sepal.Length, Sepal.Width)) + 
    geom_point()
}

然后,您可以在一个应用程序中重用它:

代码语言:javascript
复制
library(shiny)
ui <- function(request){
  plotOutput("plot")
}

server <- function(input, output, session){

  r <- reactiveValues()

  observe({
    r$data <- iris
  })

  output$plot <- renderPlot({
    my_plot(r$data)
  })
}

shinyApp(ui, server)

这里的想法是,如果您已经将所有内容构建为一个包(例如,名为"{myapp}“),那么您将能够在一个闪亮的上下文之外访问myapp::my_plot()

因此,在启动cron时,可以添加类似于R -e 'myapp::my_plot(dataset)'的内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58688764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档