【发布时间】: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 <- 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中。现在可以了,非常感谢您的帮助!