如何在R中给热力图添加黑色边框

11

你的地图上有很多单元格,如果在每个单元格上都加上黑色边框,就不会留下太多空间来展示颜色。 - Spacedman
好的,但是有没有办法像那样加上黑色边框呢? - Jana
你可以直接使用image()和abline()来完成它 - 确保获取角而不是中心(image可以处理任何一个) - 但是在热图内部获取它将更加棘手,因为它使用布局来设置绘图。 - mdsumner
白色边框怎么样?http://learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting/ - Roman Luštrik
3个回答

20

如果您按照Learn R博客中的教程,并将此段落的颜色更改为黑色,您将得到:

(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热图,而不是将其转换为多维tibble。拜托了,伙计们,plotrix解决方案是最好的。 - Federico Giorgi
1
我的眼睛看到的是你在攻击一个10多年的帖子吗?:)) 顺便说一下,随意编辑我的答案并在答案中包含(调用)数据。 - Roman Luštrik

6

试试这个:

 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))

3
函数 lattice::levelplot(mat,border="black") 用于绘制二维矩阵 mat 的等高线图,其中 border="black" 是设置边框为黑色的选项。 - James

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接