0

R の image() 関数を使用していくつかのヒートマップを描画しています。ヒートマップのサイズは非常に可変であるため、すべてのヒートマップの高さは異なりますが、ヒートマップ全体で行の高さを均一にしたいと考えています。したがって、これら 2 つのマトリックスからヒートマップを作成すると、各セルの高さが 2 つのヒートマップ間で異なります。

m1<-replicate(40, rnorm(20))     
image(1:ncol(m1), 1:nrow(m1), t(m1), axes = FALSE,xlab="",ylab="")


m2<-replicate(40, rnorm(10))
image(1:ncol(m2), 1:nrow(m2), t(m2), axes = FALSE,xlab="",ylab="")

私の人生では、行の高さを指定する方法がわかりません。非常に簡単に修正できるはずですが、わかりません。

4

3 に答える 3

0

引数を手動で指定しylim、2 つのプロット間で同じにすることができます。

par(mfrow=c(1,2))

image( 0:ncol(m1), 0:nrow(m1), t(m1), axes=FALSE, xlab='', ylab='', 
        ylim=c(0,nrow(m1)) )
image( 0:ncol(m2), 0:nrow(m2), t(m2), axes=FALSE, xlab='', ylab='',
        ylim=c(0,nrow(m1)) )
于 2013-01-03T17:01:19.707 に答える
0

あなたは非常に限られた情報を提供します。たとえば、PDF を作成しますか? または、1 ページに複数のプロットを配置しますか?

ここに1つの解決策があります:

par(fin=c(5,5),mar=c(0,0,0,0))
image(1:ncol(m1), 1:nrow(m1), t(m1), axes = FALSE,xlab="",ylab="")

par(fin=c(5,2.5),mar=c(0,0,0,0))
image(1:ncol(m2), 1:nrow(m2), t(m2), axes = FALSE,xlab="",ylab="") 

グラフで実際に何をしたいかによっては、よりエレガントなソリューションがあると確信しています。

于 2013-01-03T16:45:49.103 に答える
0

ylimパラメータを使用して、すべてのヒートマップに共通の最大行数を設定するだけです。

m1<-replicate(40, rnorm(20))     
m2<-replicate(40, rnorm(10))

image(1:ncol(m1), 1:nrow(m1), t(m1), axes=FALSE, ann=FALSE, ylim=c(0, max(sapply(list(m1,m2),nrow)) ))
image(1:ncol(m2), 1:nrow(m2), t(m2), axes=FALSE, ann=FALSE, ylim=c(0, max(sapply(list(m1,m2),nrow)) ))
于 2013-01-03T16:54:56.340 に答える