4

我正在开发的闪亮应用程序正在使用 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 的新手,不胜感激。

谢谢。

4

2 回答 2

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)
于 2017-10-03T07:19:10.540 回答
0

我推荐shinycssloaders包及其withSpinner()功能。

于 2017-10-03T07:49:30.873 回答