2012-03-15 24 views
1

ヒートマップ2を使用してマトリックスからヒートマップを作成しようとしています。私の問題は、ループの中でそれを使用していると、マトリックスの値がすべて同じである(たとえば、すべての値が0)、エラーメッセージが表示されます。「軸のエラー(1、at = xv、labels = lv):場所が限定されていません。 "R - ヒートマップを使用して、マトリックスからヒートマップを作成しようとしています。(マトリックスのすべての値は同じです)2

これを避けるにはどうしますか?

答えて

1

すべての値が同一であるかどうかをチェックし、ヒートマッププロットをスキップすることができます。

m <- matrix(...) 
if(!all(m[1,1] == m){ 
    plot... 
} 
0

ヒストグラムに独自の区切りを定義します。

x <- matrix(0, nrow = 5, ncol = 5) 
datarange <- range(c(x)) + c(-0.1, 0.1) 
mybreaks <- seq(datarange[1], datarange[2], length = 10) 
heatmap.2(x, breaks = mybreaks, 
      key.xtickfun=function() { 
        breaks <- parent.frame()$breaks 
        return(list(
           at=parent.frame()$scale01(c(breaks[1], 
            breaks[length(breaks)])), 
           labels=c(as.character(breaks[1]), 
            as.character(breaks[length(breaks)])) 
           )) 
        }) 

あるいは、カラーキーを削除します。

heatmap.2(x, key = FALSE) 
関連する問題