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 的新手,感谢任何帮助。
谢谢。
像这样的东西?
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)