【问题标题】:How to put black borders in heatmap in R如何在R中的热图中放置黑色边框
【发布时间】:2011-02-17 22:27:38
【问题描述】:

嗨 我使用链接中显示的“heatmap.plus”在 R 中创建了一个热图

http://i.stack.imgur.com/hizBf.jpg

但我需要热图看起来像下面链接中显示的热图,它是从其他一些 GUI 软件创建的

http://i.stack.imgur.com/Y8Faj.png

如何在 R 中的每个热图元素中添加黑色边框

【问题讨论】:

  • 地图中的单元格如此之多,以至于在每个单元格上都加上黑色边框不会留下太多空间来显示颜色。
  • 好的,但是有没有这样的黑色边框?
  • 你可以直接用 image() 和 abline() 来做——并确保你得到的是角落而不是中心(图像也可以处理)——但是在热图中得到它会更棘手,因为使用布局设置情节

标签: r map heat


【解决方案1】:

试试这个:

 library(plotrix)

 #Build a 40 Row by 40 Column Matrix
 n <- 40
 mat <- matrix(rnorm(n*n), nrow = n)

 #Plot it
 color2D.matplot(mat, cellcolors = color.scale(mat, c(0,0.5,1), c(1,0.5,0), 0))

【讨论】:

  • 还有:lattice::levelplot(mat,border="black")
【解决方案2】:

您是否尝试过使用heatmap.2?它有参数可以做到这一点。

require("gplots")

data <- # matrix or data frame for your data.

heatmap.2(data, 
          sepwidth=c(0.05, 0.05),  # width of the borders
          sepcolor='black',        # color of the separation lines
          )

您可能需要更多参数,具体取决于您希望图表中的内容。 R 对 heatmap.2 函数的帮助几乎涵盖了您需要的所有内容:?heatmap.2

【讨论】:

    【解决方案3】:

    如果你按照Learn R blog 的教程,把这一段的颜色改成黑色,你会得到:

    (p <- ggplot(nba.m, aes(variable, Name)) +
        geom_tile(aes(fill = rescale), colour = "black") +
        scale_fill_gradient(low = "white",high = "steelblue"))
    

    【讨论】:

    • 按照通常的 ggplot 答案,该示例无法复制,因为它依赖于需要从遥远的网站导入的外部数据。甚至不清楚输入的 nba.m 对象应该如何格式化。经典的 ggplot 解决方案,依赖于深奥的数据结构。如果我有一个 2D 矩阵,我想将其绘制为 2D 热图,而不是将其转换为多维小标题。来吧伙计们,plotrix 解决方案是最好的解决方案。
    • 我的眼睛是否正确,您正在抨击一个 10 年以上的帖子? :)) 顺便说一句,请随时编辑我的答案并在答案中包含(调用)数据。
    猜你喜欢
    • 2020-12-27
    • 2020-03-20
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 2012-09-13
    相关资源
    最近更新 更多