我在查看ggplot时遇到了麻烦。当我运行以下代码时,我得到的只是一个空白屏幕,但没有错误消息:
library(ggplot2)
library(shiny)
if (interactive()) {
ui <-{plotOutput(outputId = "main_plot", height = "300px")}
server <- function(input, output){
plotInput <- reactive({ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()})
output$main_plot <- renderPlot(expr=function(){
#conditional statements
plotInput()}
)
}
shinyApp(ui, server)
}
但是,如果在没有函数定义的情况下运行完全相同的代码,则会显示该图。我非常困惑,因为renderPlot的文档允许使用表达式:
if (interactive()) {
ui <-{plotOutput(outputId = "main_plot", height = "300px")}
server <- function(input, output){
plotInput <- reactive({ggplot(mtcars, aes(x=wt, y=mpg)) + geom_point()})
output$main_plot <- renderPlot(plotInput())
}
shinyApp(ui, server)
}
这是一个问题,因为我想运行一些条件语句来确定是否显示图。我使用正确的方法吗?
答案 0 :(得分:1)
expr=
的{{1}}应该是一个表达式。你正在传递一个函数。那些不一样。尝试取消rennderPlot()
部分。
库(GGPLOT2) 库(有光泽)
function()