【问题标题】:Heatmap a chacrter matrix热图一个字符矩阵
【发布时间】:2013-12-12 03:06:50
【问题描述】:

我是 R 的新手,我想知道是否可以对包含 TRUE 和 FALSE 的表或矩阵进行热图,即: 条件1 条件2。 . . Id1 真假 Id2 假 真 . . . 我对这个幼稚问题的借口和任何提议都欢迎制作热图或任何工具,通过颜色代码可视化我的表格或矩阵,并基于它应用聚类或树状图。
提前谢谢你

【问题讨论】:

  • 我发现了一个类似的问题HERE

标签: r heatmap


【解决方案1】:

假设您可以轻松地将 TRUE/FALSE 转换为 1,0 数字

x<-data.frame(y=sample(c(1, 0),10, replace=TRUE), z=sample(c(1, 0),10, replace=TRUE))
heatmap(as.matrix(x))

如果需要,将 TRUE/FALSE 更改为 1/0 ,

x[x==TRUE]<-1
x[x==FALSE]<-0

【讨论】:

  • 其实你不需要把T转1或者F转0,它会自动完成的。
  • 嗯,我得到以下错误 Error in heatmap(as.matrix(x)) : 'x' must be a numeric matrix 没有转换,可能是 image 没问题,但不是 heatmap
  • 它会用as.numeric(x)做1和0
【解决方案2】:

使用 image() 函数:

> x=matrix(c(T,F,T,F,F,F,T,T,F,T,T,T,F,F,F,T),ncol=4)
> x
      [,1]  [,2]  [,3]  [,4]
[1,]  TRUE FALSE FALSE FALSE
[2,] FALSE FALSE  TRUE FALSE
[3,]  TRUE  TRUE  TRUE FALSE
[4,] FALSE  TRUE  TRUE  TRUE
> image(t(x),axes=F)
> axis(2,at=seq(0,1,(1/(nrow(x)-1))),labels=nrow(x):1)
> axis(3,at=seq(0,1,(1/(ncol(x)-1))),labels=1:ncol(x))

试一试!

【讨论】:

  • +1!但是,它不应该是image(t(x)[,ncol(x):1]) 吗?这些方块让我头疼!
猜你喜欢
  • 2023-03-03
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 2016-03-09
  • 2019-01-08
  • 1970-01-01
  • 2018-10-10
  • 2016-12-08
相关资源
最近更新 更多