Shiny R - ggplotly - 当数据集不返回任何信息时显示自定义消息而不是空图

Pra*_*mar 3 r ggplot2 shiny ggplotly

我正在开发的闪亮应用程序正在使用 ggplotly 显示图形。在结果数据集为空的情况下,将显示一个空白图,如下所示。 在此处输入图片说明

是否可以显示自定义消息,例如“所选输入不存在数据”而不是空图

在验证的帮助下,当用户未在前端选择输入时,我需要能够显示错误消息 -

validate(
      need(input$category, 'No data exists, please select a Category')
      )
Run Code Online (Sandbox Code Playgroud)



当最终数据集为空时,我想在服务器端类似地显示自定义消息,到目前为止,我已经根据谷歌的帮助尝试了以下代码。这些代码没有给出任何错误,但默认情况下会打印错误消息。

validate(
    need(nrow(dataset() > 0), 'Message here')
    )
Run Code Online (Sandbox Code Playgroud)

或者

validate(
    need(is.null(dataset), 'Message here')
    )
Run Code Online (Sandbox Code Playgroud)



我在下面的代码的帮助下绘图,其中 g() 是我在过滤器应用基础用户输入后的最终数据集 -

output$plot1 <- renderPlotly({
    p <- ggplot(g(), aes_string(x=input$x, y=input$y)) + geom_point(alpha=0.4)
    ggplotly(p)

  })
Run Code Online (Sandbox Code Playgroud)

我是 Shiny 和 R 的新手,感谢任何帮助。

谢谢。

Por*_*hop 6

像这样的东西?

library(shiny)
library(plotly)

ui <- fluidPage(
  plotlyOutput("plot")
)

server <- function(input, output) {

  g <- reactive({NULL})

  output$plot <- renderPlotly({
    validate(
      # Old Code
      need(nrow(g() > 0), 'No data exists, please select a Category')
      # With parentheses fix
      need(nrow(g()) > 0, 'No data exists, please select a Category')
    )
    plot_ly(g(), x = ~mpg, y = ~wt)
  })
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)