我有一个包含许多情节的Shiny Web应用程序。每个图都有自己的SQL查询来获取数据。查询之一可能返回一个数据不足的表。如果发生这种情况,那么我想在绘图所在的选项卡中显示一条文本消息。
server.R:
library(shiny)
library(RMySQL)
shinyServer(function(input, output, session) {
output$lineGraphOne <- renderPlot({
table <- getDataSomeHowOne()
if(dim(table[1]) < 3) {
error <- paste("Some error message")
} else {
plot(x = as.Date(table$date), y = table$count)
}
})
output$lineGraphTwo <- renderPlot({
table <- getDataSomeHowTwo()
if(dim(table[1]) < 3) {
error <- paste("Some error message")
} else {
plot(x = as.Date(table$date), y = table$count)
}
})
})
Run Code Online (Sandbox Code Playgroud)
用户界面
library(shiny)
shinyUI(navbarPage("Title",
tabPanel("Name",
sidebarLayout(
mainPanel(
tabsetPanel(id = "tabs",
tabPanel("One", plotOutput("lineGraphOne")),
tabPanel("Two", plotOutput("lineGraphTwo"))
)
),
sidebarPanel(
dateInput('queryDate', 'Datum:', …Run Code Online (Sandbox Code Playgroud) 我正在开发一个带有大量情节的 Shiny 应用程序。每当我更改某些输入时,绘图在绘制之前很短的时间内都不会显示,而是显示了一条相当突出的红色错误消息。在这里可以看到它的外观 。
肯定有解决此问题的解决方案,请参见此处的示例。此外,来自 RStudio 的 Joe Cheng 在 Shiny 开发者大会上的最后十分钟演讲中,讨论了具有该功能的解决方案req()(请参阅此处)。然而,后者在第一次尝试时并没有完全解决问题,前者需要更多的工作,因为我必须在每个情节中添加 if 子句。
现在,我认为我实际上可以接受错误消息,因为此后该图显示得相当快。但是,有没有机会改变颜色。如果这是灰色和深蓝色,它会更不引人注目。