Тепловая карта не отображается в блестящем, если я не изменю размер окна - PullRequest
0 голосов
/ 20 февраля 2020

Я новичок в Блестящем и пытаюсь сделать блестящее приложение. Мне нужно построить тепловую карту, используя pheatmap на основе цифры c, введенной пользователем. Данные слишком велики, но вот воспроизводимые данные:

a<-structure(list(gene_name = c("NAT2", "ACADS", "ACAT1", "ADA", 
                             "ADRB2", "ADRB3"), tree = c(1L, 2L, 3L, 3L, 4L, 4L)), row.names = c(NA, 
                                                                                                 6L), class = "data.frame")


b<-structure(list(Phaeodactylum_tricornutum = c(0, 1, 1, 1, 0, 0
), Coccomyxa_subellipsoidea = c(0, 1, 1, 1, 0, 0), Acanthamoeba_castellanii = c(1, 
                                                                                1, 1, 1, 0, 0), Fonticula_alba = c(0, 1, 1, 1, 0, 0), Rhizophagus_irregularis = c(0, 
                                                                                                                                                                  1, 1, 1, 0, 0), Sphaeroforma_arctica = c(0, 1, 1, 1, 0, 0), Capsaspora_owczarzaki = c(0, 
                                                                                                                                                                                                                                                        1, 1, 1, 0, 0), Cryptosporidium_parvum = c(0, 0, 0, 0, 0, 0), 
Enterobacter_cloacae = c(1, 1, 1, 1, 0, 0), gene_name = c("NAT2", 
                                                          "ACADS", "ACAT1", "ADA", "ADRB2", "ADRB3"), human_np = c("NP_000006.2", 
                                                                                                                   "NP_000008.1", "NP_000010.1", "NP_000013.2", "NP_000015.1", 
                                                                                                                   "NP_000016.1")), row.names = c(NA, 6L), class = "data.frame")

Вот блестящий код:

library(shiny)
library(DT)
library(pheatmap)
library(dplyr)

# Define UI ----
ui <- fluidPage(

  titlePanel("title panel"),

  sidebarLayout(
    sidebarPanel("sidebar panel"
                 ),
    mainPanel("main panel", 
              numericInput(inputId = "cl", 
                           h3("Cluster number"), 
                           value = 1, min = 1, max = 2),
              plotOutput("cls_num"),

    )
  )
)

# Define server logic
server <- function(input, output) {

  clinput<-reactive({
    b[which(a$tree == input$cl),1:9]
  })

  output$cls_num<-renderPlot({

    clinput()%>%
      pheatmap(cluster_rows = FALSE, cluster_cols = FALSE)
  })
}

# Run the app ----
shinyApp(ui = ui, server = server)

Проблема в том, что когда я запускаю приложение, оно показывает только график, когда я изменяю размер окна и после изменения входных данных, мне нужно изменить размер окна еще раз, чтобы увидеть карту тепла. Это происходит как в rstudio, так и в браузере.

Заранее спасибо.

...