【问题标题】:Shiny R - ggplotly - Show custom message instead of empty plot when the dataset does not return any informationShiny R - ggplotly - 当数据集不返回任何信息时显示自定义消息而不是空图
【发布时间】:2018-03-14 07:07:07
【问题描述】:

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

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

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

validate(
      need(input$category, 'No data exists, please select a Category')
      )



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

validate(
    need(nrow(dataset() > 0), 'Message here')
    )

validate(
    need(is.null(dataset), 'Message here')
    )



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

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

  })

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

谢谢。

【问题讨论】:

    标签: r ggplot2 shiny ggplotly


    【解决方案1】:

    这样的?

    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)
    

    【讨论】:

    • 嗨@Pork Chop,您的建议在开始时没有给出任何错误,但是当没有数据时,它会显示错误为 - “错误:数据太长”,任何建议那个?
    • 请打印确切的错误,该错误与我的示例无关
    【解决方案2】:

    我推荐shinycssloaders 包及其withSpinner() 函数。

    【讨论】:

    • 您好,您可以分享一个示例或参考链接吗?
    • 链接中的情节和其他人正在使用 validate(need()...),如您所见,我已经尝试过,但在 ggplotly 中不起作用
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    相关资源
    最近更新 更多