代码之家  ›  专栏  ›  技术社区  ›  Nate Thompson

ggplot2-按行列出的热图表

  •  1
  • Nate Thompson  · 技术社区  · 7 年前

    我正在尝试制作一个热图表,这相当简单,但我希望渐变颜色仅限于一行,而不是整个数据。框架结果应该是每一行都应该有行max和min。基本上,我可以在网上找到的所有热图示例都可以从表中的所有值创建渐变色阶。

    以下是一个数据帧示例:

    df <- data.frame('var' = paste0('var',1:3),
                 'group1' = c(1,500,3),
                 'group2' = c(2,300,1),
                 'group3' = c(3,100,2),
                 'group4' = c(4,50,4),
                 'group5' = c(5,10,5))
    

    以下是我所寻找的结果: enter image description here

    1 回复  |  直到 7 年前
        1
  •  3
  •   Julien Massardier    7 年前

    按行缩放数据(除以行的平均值)怎么样。ggplot2示例:

    df <- melt(df)
    df <- data.table(df)
    df[,value_rescaled:=value/mean(value),by=.(var)]
    
    
    ggplot(data = df, aes(x = variable, y = var)) +
      geom_tile(aes(fill = value_rescaled))+
      scale_fill_gradient2(low = "#4682B4", mid = "#FFFFFF", high = "#FF0000", midpoint = 1, space = "Lab",
                          na.value = "grey50", guide = "colourbar")+
      geom_text(aes(label=value))+
      theme(legend.position="none")
    

    enter image description here