【问题标题】:How to show ggplot from external function in shiny R application?如何在闪亮的 R 应用程序中显示来自外部函数的 ggplot?
【发布时间】:2021-10-21 09:21:38
【问题描述】:

我需要创建闪亮的应用程序,它将根据下拉菜单选择创建一个情节。整个计算部分非常复杂,绘图也是如此——我创建了一个返回 ggplot 的函数,我只想在应用程序中显示它。 我的想法如下:

library(shiny)
source('Analysis/function_external.R')
list_names = c('a', 'b', 'c')
ui <- fluidPage(
    selectInput("data", "Select data to plot", choices = list_names)
)

# Define server logic required to draw a histogram
server <- function(input, output) {

  observe({function_external(input$data)})

}

# Run the application 
shinyApp(ui = ui, server = server)

每次我更改输入时都会运行函数,但它不显示任何内容。如果您能指出我的正确方向,我将不胜感激。

【问题讨论】:

  • 不知道 function_external 做什么很难提供帮助,你能分享一个可重现的例子吗?
  • 它需要一些外部数据,返回ggplot时根据a,b或c进行处理,例如return_plot = ggplot(data=x, etc),return(return_plot)时。本来只是一筹莫展,但我想也许我会尝试那种方式将情节传递给闪亮。稍后我将尝试创建可重现的示例,因为这需要我一段时间。
  • output$my_complicated_plot &lt;- renderPlot({ function_external(input$data) }) 应该可以工作,前提是您将 my_complicated_plot 添加到您的 ui 函数中。
  • 也许我不太清楚,但在我的情况下,这个解决方案根本不运行该功能。当我用 observe 运行它时,我看到 > runApp() Listening on 127.0.0.1:6750 old-style crs object detected;请使用最近检测到的 sf::st_crs() 旧式 crs 对象重新创建对象;请使用最近的 sf::st_crs() 旋风名称重新创建对象:要分析的位置数:30 - 这对于此功能是正常的。如果您只提供 runApp() 监听 127.0.0.1:6750 并且没有发生任何事情。
  • 好吧,我好像忘了把它添加到ui中。现在可以了,非常感谢您的帮助!

标签: r ggplot2 shiny


【解决方案1】:

输出$my_complicated_plot

【讨论】:

    猜你喜欢
    • 2016-12-20
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2019-03-14
    • 2019-05-01
    • 2020-07-31
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多