我是新来的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
谢谢您的帮助。
对于一个良好的形象()式的情节,你将需要一些标签添加到您的轴。 此外,色彩的传奇将有助于颜色的解释。 我的博客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()
您只需使用image()
函数来创建一个热图。 通过指定自定义col
参数指定的颜色。
请注意,如果您正在使用一个data.frame,则可能需要将其转换为一个矩阵:
image(as.matrix(myVar))
另外,您也可以使用GGPLOT2,只需要用做一个热地图瓦片形状 ( geom_tile
)。 请参阅此链接为一个非常复杂的例子。