我是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
感谢您的帮助。
答案 0 :(得分:6)
对于漂亮的图像()类型图,您需要为轴添加一些标签。此外,颜色图例将有助于解释颜色。我的博客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()
答案 1 :(得分:3)
您可以使用image()
功能创建热图。通过指定col
参数来自定义以指定颜色。
请注意,如果您当前正在使用data.frame,则可能需要将其转换为矩阵:
image(as.matrix(myVar))
答案 2 :(得分:2)
或者,您可以使用ggplot2制作热图,只需使用tile geometry(geom_tile
)。有关详细的示例,请参阅this link。