2

私はゼロと1だけの行列を持っています:

                  acc062_1 acc062_2 acc003_1 acc003_2 acc039_1 acc039_2
SL2.40ct15849        0        1        0        0        1        0
SL2.40ct15848        0        0        0        0        0        0
SL2.40ct15847        0        0        0        0        0        0
SL2.40ct15846        0        0        0        0        0        0
SL2.40ct15845        0        0        0        0        0        0
SL2.40ct15844        1        1        1        1        1        1
SL2.40ct11061        0        0        0        0        0        0
SL2.40ct11060        0        0        0        0        0        0
SL2.40sc04607        1        1        1        1        1        1
SL2.40ct11212        0        0        0        0        0        0
SL2.40ch12           1        1        1        1        1        1

このマトリックスを使用すると、グラフィックス パッケージのイメージ機能を使用してイメージを作成できます。このコードを使用して:

image(x)

これにより、0 の場合は赤、1 の場合は白の色で、期待どおりのイメージが得られます。ただし、x 軸と y 軸のラベルは、行名と列名ではありません。これは 0 ~ 1 の範囲です。これらを列名に変更するにはどうすればよいですか?

ヒートマップ機能を使用する場合:

heatmap(x)

ラベルは、x 軸と y 軸の列名と行名です。しかし、今ではゼロのみまたは 1 のみのすべての行が白紙です。バリエーションのある読み取りのみが期待どおりに描画されます。(クラスタリングも行われますが、この機能をオフにすることができます)

image(x) で作成された画像を取得し、heatmap(x) で作成されたラベルを取得する方法を知っている人はいますか? 行数が非常に多くなるため、image 関数を使用することをお勧めします。

4

1 に答える 1

8

軸 (パラメーター xaxt および yaxt) なしで image() を実行し、指定されたラベルで軸を追加する必要があると思います。

par( mar = par( "mar" ) + c( 2, 4, 0, 0 ) )
image( x, xaxt= "n", yaxt= "n" )
axis( 1, at=seq(0,1,length.out=ncol( x ) ), labels= colnames( x ), las= 2 )
axis( 2, at=seq(0,1,length.out=nrow( x ) ), labels= rownames( x ), las= 2)
于 2013-07-10T11:21:19.267 に答える