提供绘制或显示闪亮图像的选项

时间:2018-06-13 08:42:28

标签: r shiny shinydashboard

我写过这个闪亮的应用程序,我想提供选项来选择绘制输出或在主面板中显示图像,但这不起作用,任何想法可以添加此选项?

ui <- fluidPage(
  titlePanel("time-profilling"),

  sidebarLayout(
    sidebarPanel(   
      selectInput("vari", "x-Variable:",
              c("M","N","K","heatmap" )),
    uiOutput("ui1"),
    uiOutput("ui2")
  ),

  mainPanel(
    if(input$vari == "M" || input$vari == "N" || input$vari == "K" ){
      plotlyOutput("results", height = "800px", width = "800px")
    }
    else if(input$vari == "heatmap"){
      imageOutput("image1")
      imageOutput("image2")
    }  
  )
 )
)

1 个答案:

答案 0 :(得分:0)

在你的例子中没有足够的工作 - 一些数据或一些绘图会有所帮助。但是这里有两个想法和一个代码结构,希望能让你开始走上正确的道路......

  1. 你不能在闪亮的应用程序的UI中添加任何逻辑。 Ifelse语句应该都在服务器中,这里没有。
  2. 该服务器代码应与您拥有的每个输出(图或图像)配对,如下所示。
  3. 以下修订和附加代码:

    library(shiny)
    library(plotly)
    ui <- fluidPage(
      titlePanel("time-profilling"),
      sidebarLayout(
        sidebarPanel(   
          selectInput("vari", "x-Variable:",
                      c("M","N","K","heatmap" )),
          uiOutput("ui1"),
          uiOutput("ui2")
        ),
        mainPanel(
            plotlyOutput("results", height = "800px", width = "800px"),
            imageOutput("image1"),
            imageOutput("image2")
        )
      )
    )
    
    server <- function(input, output) {
      output$results <- renderPlotly({
        if(input$vari == "M" || input$vari == "N" || input$vari == "K" ) {
          ## Plotly code goes here
        }
        return(NULL)
      })
    
      output$image1 <- renderImage({
        if(input$vari == "heatmap"){
          ## Pre-rendered image code goes here
        }
        return(NULL)
      })
    
      output$image2 <- renderImage({
        if(input$vari == "heatmap"){
          ## Pre-rendered image code goes here
        }
        return(NULL)
      })
    }
    
    shinyApp(ui, server)
    

    现在输入没有提供任何东西,因为你需要输入代码来绘制你的图或找到你的图像,但结构应该可以正常工作。