【问题标题】:Creating custom heatmap创建自定义热图
【发布时间】:2015-12-24 09:35:00
【问题描述】:

我想创建一个自定义热图,其中一个矩阵定义了一系列具有唯一指定颜色的正方形的强度 (alpha)。此外,定义每个正方形的轴将是唯一的(参见下面的示例)。

哪些软件包可以帮助做到这一点?来自ggplot2geom_rect 函数(在this different question 中使用似乎很有希望,但与给定情节的耦合过于紧密?


例如

数据:

      [,1] [,2] 
[1,]   30    5   
[2,]    3    50  

轴:

x_bounds <- t(matrix(c(
    0,10,
    10,30
), 2))
y_bounds <- t(matrix(c(
    0,-50,
    -50,1000
), 2))

结果模型:

【问题讨论】:

    标签: r plot ggplot2


    【解决方案1】:

    这能满足你的需求吗?

    library(ggplot2)
    x_bounds <- c(0,10,30)
    y_bounds <- c(0,-50,1000)
    
    df <- data.frame(x = c(0,1,0,1), 
                     y = c(0,0,1,1), 
                     fill = c("red","green","blue","yellow"),
                     alpha = c(0.6,0.6,0.5,0.8))
    
    ggplot(data = df) +
      geom_rect(aes(xmin = x, xmax = x+1, ymin = y, ymax = y+1, 
                    fill =  fill, alpha = alpha)) +
      scale_x_continuous(breaks = min(df$x):(max(df$x)+1),
                         labels = x_bounds) +
      scale_y_continuous(breaks = min(df$y):(max(df$y)+1),
                         labels = y_bounds) +
      scale_fill_identity() +
      theme(panel.background=element_blank(),
            panel.border=element_blank(),
            panel.grid.major=element_blank(),
            panel.grid.minor=element_blank(),
            plot.background=element_blank())
    

    【讨论】:

    • 啊,确实如此!我喜欢你所做的,现在我将努力使其通用和。谢谢
    猜你喜欢
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2017-07-28
    • 2011-05-24
    • 1970-01-01
    相关资源
    最近更新 更多