首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将矩阵(包括值)显示为热图

将矩阵(包括值)显示为热图
EN

Stack Overflow用户
提问于 2010-09-25 01:32:04
回答 6查看 47.4K关注 0票数 32

我想做的是利用这个矩阵:

代码语言:javascript
复制
> partb
                0.5  1.5   1a   1b   -2   -3
A1FCLYRBAB430F 0.26 0.00 0.74 0.00 0.00 0.00
A1SO604B523Q68 0.67 0.33 0.00 0.00 0.00 0.00
A386SQL39RBV7G 0.00 0.33 0.33 0.33 0.00 0.00
A3GTXOXRSE74WD 0.41 0.00 0.08 0.03 0.05 0.44
A3OOD9IMOHPPFQ 0.00 0.00 0.33 0.00 0.33 0.33
A8AZ39QM2A9SO  0.13 0.54 0.18 0.13 0.00 0.03

然后制作一个热图,在现在着色的单元格中包含每个值。

制作热图很简单:

代码语言:javascript
复制
> heatmap( partb, Rowv=NA, Colv=NA, col = heat.colors(256),  margins=c(5,10))

但在我的一生中,我不知道如何在每个单元格中赋值。

我遗漏了什么?这肯定是一件很常见的事情。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-09-25 02:48:06

尝试gplots包中的heatmap.2。cellnote和notecol参数控制单元格中放置的文本。您可能也需要dendrogram = "none"

票数 14
EN

Stack Overflow用户

发布于 2010-09-25 10:30:09

例如:

代码语言:javascript
复制
m <- matrix(1:30, ncol=6)
colnames(m) <- paste("C", 1:6, sep="")
rownames(m) <- paste("R", 1:5, sep="")
m

image(1:ncol(m), 1:nrow(m), t(m), col = terrain.colors(60), axes = FALSE)
axis(1, 1:ncol(m), colnames(m))
axis(2, 1:nrow(m), rownames(m))
for (x in 1:ncol(m))
  for (y in 1:nrow(m))
    text(x, y, m[y,x])
票数 22
EN

Stack Overflow用户

发布于 2010-09-25 02:50:14

您可以使用imagetext。我个人喜欢fields包中的image.plot,因为它在侧面添加了一个图例,但是您也可以在image中使用它。

举个例子

代码语言:javascript
复制
require(fields)
# Make a 10x10 matrix
m = matrix(rnorm(100), nrow=10)
image.plot(m)
for (x in 1:10)
    for (y in 1:10)
        text((x-1)/9, (y-1)/9, sprintf("%0.2f", m[x,y]))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3789549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档