2017-07-08 34 views
2

私はRでデンドログラムを使ってヒートマップを作成しようとしています。また、カラーマトリックスがヒートマップの最下部にくるようにしようとしています。私はこのためにlmatの価値を変えなければならないことを理解しています。これまでのところ、私はlmatのためにこれのようなものを持っています。ヒートマップ2 lmat、lhei、lwidパラメータ?

lmat=rbind(c(0,3,0), c(2,1,0), c(0,4,0)). 

実行後、lheiとlwidの値を更新するように求められます。ドキュメントを見て、私はこれらが列の幅と行の高さのベクトルであることを理解しています。しかし、私はその値に必要な複数の値を理解していません。たとえば、私がこれを設定すると、私はこのエラーを受け取ります。

lhei must have length = nrow(lmat) = 3 

lheiの3つの値がどのように対応するかわかりません。これはより広い質問につながります。lheiとlwidのベクトルの各値は、それぞれ何に対応していますか?

答えて

1

lheiは、プロット内の行の相対的な高さです。 Rのヒートマップはちょっとねじれています。グラフィックスデバイス(ペイントしたいキャンバスを考える)は、ヒートマップの各要素がプロットされるグリッドに分かれています:カラーキー、デンドログラム、ヒートマップ。これは2x2グリッドになります。 colsideColorsまたはrowsidecolorsを追加すると、グリッドは適切なディメンションに1ずつ拡大されます(たとえば、彩度を追加すると1行追加されます)。この余分な行を追加するときに、Rに必要な(相対的な)スペースの量をRに伝える必要があります。

mat <- matrix(rnorm(200), nrow = 20) 
colCols <- rep(c("red", "blue"), 5) 
heatmap.2(mat, trace="none", ColSideColors = colCols, 
      lmat=rbind(c(5,4), c(3,2), c(0,1)), 
      lhei=c(2,4,0.2)) 

enter image description here

1

lmatレイアウト行列を表し、そしてheatmap.2デフォルトでは、4つの構成要素を整理するのに使用される2×2行列である(1 =ヒートマップ、2 =行の系統樹、3 = COLの樹状図4 =キー)は、次のようになります。 lmat = rbind(c(4,3)、c(2,1)) 「lheiは長さ= nrow(lmat)= 3」のエラーが発生します。レイアウトや行の高さは、コードから3行になりました。視覚的には、このコードを積み重ねた形式で整理することができます。あなたの例では、キーがヒートマップの下にあることを明確に見ることができますが、ゼロはパディングとして使用されます。

関連する問題