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

时间:2017-10-03 06:45:21

标签: r ggplot2 shiny ggplotly

我正在研究的闪亮应用程序是使用ggplotly显示图形。在结果数据集为空的情况下,将显示空白图,如下所示。 enter image description here

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

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

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的新手,感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:2)

这样的东西?

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)

答案 1 :(得分:0)

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