首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R gplots:带有侧色的热图

R gplots:带有侧色的热图
EN

Stack Overflow用户
提问于 2015-12-07 22:36:27
回答 1查看 526关注 0票数 2

我想使用gplots包中的heatmap.2函数创建一个热图。这是一个最小的例子。

代码语言:javascript
复制
require(gplots)

# create symmetric matrix
x = matrix(rnorm(100), nrow=10)
diag(x)         <- 1
x[upper.tri(x)] <-  t(x)[upper.tri(x)]
colnames(x)     <- rownames(x) <- letters[1:nrow(x)]

# create side colours
varcols = setNames(rainbow(nrow(x)), rownames(x))

# create heatmap
heatmap.2(x,
          symm = TRUE,             
          trace = "none",          
          revC=TRUE, # <-- THIS IS THE PROBLEM
          ColSideColors = varcols,
          RowSideColors = varcols
          )  

问题在于侧色。x是对称矩阵,因此列和行应该具有相同的边色。只要使用revC = FALSE就可以了。然而,当我使用revC = TRUE时,颜色的顺序是混乱的。有时-在小示例中-它有助于反转ColSideColors,但这并不总是有效的。

是我做错了什么呢,还是这是一个gplots错误?

EN

回答 1

Stack Overflow用户

发布于 2016-07-11 23:19:23

对于任何遇到这个问题的人来说,这是我解决它的方法:

代码语言:javascript
复制
thing = heatmap.2(my_matrix,...RowSideColors=row_cols, revC=F)
ordinary_order = thing$rowInd
reversal = cbind(ordinary_order, rev(ordinary_order))
rev_col = row_cols[reversal[,2]]; rev_col = rev_col[order(reversal[,1])];

heatmap.2(my_matrix, RowSideColors=rev_col, revC=T)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34136096

复制
相关文章

相似问题

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