1
library(gplots)
shades= c(seq(-1,0.8,length=64),seq(0.8,1.2,length=64),seq(1.2,3,length=64))
 heatmap.2(cor_mat, dendrogram='none', Rowv=FALSE, Colv=FALSE, col=redblue(64),  
breaks=shades, key=TRUE, cexCol=0.7, cexRow=1, keysize=1)

休憩に問題あり。それについての助けを受け取りたい。

コードを実行した後、このエラーメッセージが表示されます

Error in image.default(1:nc, 1:nr, x, xlim = 0.5 + c(0, nc), ylim = 0.5 + : must have one more break than colour

あなたの時間と配慮していただきありがとうございます。

4

1 に答える 1

3

ええと、cor_matがないので、自分で試すことはできませんが、問題は缶に書かれていることのようですよね。ヒートマップ(および通常は画像に基づくすべての関数)がブレークと色のベクトルで機能する方法は、ブレークがデータマトリックスの値の変化が色の変化を意味するポイントを定義することです。要するに、もしbreak = c(1,2,3)、そしてあなたのcol = c("red", "blue")

  1. 1未満の値は透過的になります
  2. 値>=1、<=2は赤でプロットされます
  3. 値>2、<=3は青でプロットされます
  4. 3より大きい値は透過的になります

コードで起こっていることは、「シェード」を使用して、長さ3 * 64のベクトルをbreakに指定したのに対し、redblue(64)64色しか提供しないということです。redblue(64)たとえば、に置き換えてみてくださいredblue(3*64-1)

于 2012-05-25T08:31:03.577 に答える