3

私は R を初めて使用し、ヒート マップまたは密度マップを作成して結果を表示しようとしています。20 の異なる場所と 20 年間の x データがあります。私は、同じ地図で場所と年の違いを示そうとしています。私のデータは次のようになります。

    1975    1977    1979    1981    1983    1985    1987    1989
Dallas  25  28  27  29  31  33  35  37
Houston 33  38  43  48  53  58  63  68
Lubbock 28  29  31  33  35  37  39  41
Austin  22  24  26  28  30  32  34  36
San Antonio 31  32  33  34  35  36  37  38

ご協力ありがとうございました。

4

3 に答える 3

6

素敵な image() タイプのプロットを作成するには、軸にいくつかのラベルを追加する必要があります。また、色の凡例は色の解釈に役立ちます。私のブログhttp://menugget.blogspot.de/には、このスケールを画像プロットに追加する機能があります。以下は例です (menugget から image.scale 関数をロードした後:

years <- seq(1975,1989,2)
db <- data.frame(Dallas=c( 25, 28, 27, 29, 31, 33, 35, 37),
 Houston=c( 33, 38, 43, 48, 53, 58, 63, 68),
 Lubbock=c( 28, 29, 31, 33, 35, 37, 39, 41),
 Austin= c(22, 24, 26, 28, 30, 32, 34, 36),
 San_Antonio= c(31, 32, 33, 34, 35, 36, 37, 38)
)
db <- as.matrix(db)

#plot
layout(matrix(c(1,2), nrow=1, ncol=2), widths=c(4,1), heights=c(4))
layout.show(2)
par(mar=c(5,5,1,1))
image(x=years, z=db, yaxt="n")
axis(2, at=seq(0,1,,dim(db)[2]), labels=colnames(db))
#image.scale from http://menugget.blogspot.de/2011/08/adding-scale-to-image-plot.html
par(mar=c(5,0,1,5))
image.scale(db, horiz=FALSE, yaxt="n", xaxt="n", xlab="", ylab="")
axis(4)
mtext("temp", side=4, line=2)
box()

ここに画像の説明を入力

于 2012-04-17T20:38:28.147 に答える
3

関数を使用image()してヒートマップを作成するだけです。col色を指定するパラメータを指定してカスタマイズします。

現在 data.frame を使用している場合は、それをマトリックスに変換する必要がある場合があることに注意してください。

 image(as.matrix(myVar))
于 2012-04-17T20:02:15.620 に答える
2

または、ggplot2 を使用してヒート マップを作成することもできます。タイル ジオメトリを使用するだけです( geom_tile)。非常に精巧な例については、このリンクを参照してください。

于 2012-04-17T20:14:25.573 に答える