中的R热图或密度图(Heat map or density map in R)

2019-06-23 17:42发布

我是新来的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

谢谢您的帮助。

Answer 1:

对于一个良好的形象()式的情节,你将需要一些标签添加到您的轴。 此外,色彩的传奇将有助于颜​​色的解释。 我的博客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()



Answer 2:

您只需使用image()函数来创建一个热图。 通过指定自定义col参数指定的颜色。

请注意,如果您正在使用一个data.frame,则可能需要将其转换为一个矩阵:

 image(as.matrix(myVar))


Answer 3:

另外,您也可以使用GGPLOT2,只需要用做一个热地图瓦片形状 ( geom_tile )。 请参阅此链接为一个非常复杂的例子。



文章来源: Heat map or density map in R
标签: r plot ggplot2