首页 > 解决方案 > 如何在闪亮的 pheatmap 中获取列名?

问题描述

我想从闪亮的用户csv文件创建一个热图,到目前为止我已经成功地读取了闪亮的表格并且还得到了热图。但是,输入 csv 文件中的行名称未显示在热图中。列名似乎很好。

服务器功能

plotdata <- eventReactive(input$getHmap, {
data <- as.matrix(data()[-1], )
row.names(data) <- data()$Name

data[is.na(data)] <- 0
data
})

output$theheatmap = renderPlot({ 
pheatmap(plotdata())

})

很确定UI脚本很好..

#sliderbar for heatmap
conditionalPanel(condition = "$('li.active a').first().html()==='Heatmap'",
                             h2 ("Click the button to produce heatmap"),
                             actionButton('getHmap', 'get heatmap')),
mainpanel (
tabsetpanel ( 
tabPanel('Heatmap',
          fluidRow(column(8, offset = 1,
                          h2("Heatmap"),
                          plotOutput("theheatmap"),
                          ))  

服务器功能中缺少某些东西,我似乎无法理解它

标签: rshinyheatmapshiny-serverpheatmap

解决方案


我试图用mtcars数据集重新制作你的应用程序,它工作正常,所以我想问题出在你导入数据的方式上。但我同意@Kevin,您应该提供一个可重现的示例 ,因为如果没有完整的代码,很难看出您的问题是什么。

这是我所做的,希望对您有所帮助:

library(shiny)
library(tibble)
library(pheatmap)

ui <- basicPage(
  #sliderbar for heatmap
  conditionalPanel(condition = "$('li.active a').first().html()==='Heatmap'",
                   h2 ("Click the button to produce heatmap"),
                   actionButton('getHmap', 'get heatmap')),
  mainPanel (
    tabsetPanel ( 
      tabPanel('Heatmap',
               fluidRow(column(8, offset = 1,
                               h2("Heatmap"),
                               plotOutput("theheatmap"),
               ))  )
    )
  )
)

server <- function(input, output){

  data <- reactive({
    x <- head(mtcars)
    x <- rownames_to_column(x, "Name")
  })

  plotdata <- eventReactive(input$getHmap, {
    data <- as.matrix(data()[-1], )
    row.names(data) <- data()$Name

    data[is.na(data)] <- 0
    data
  })

  output$theheatmap = renderPlot({ 
    pheatmap(plotdata())

  })

}

shinyApp(ui, server)

推荐阅读