R中的热图或密度图

Posted

技术标签:

【中文标题】R中的热图或密度图【英文标题】:Heat map or density map in R 【发布时间】:2012-04-17 19:57:19 【问题描述】:

我是 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

感谢您的帮助。

【问题讨论】:

另见这些链接:***.com/questions/7747991/geographical-heat-map-in-r***.com/questions/8421536/a-true-heat-map-in-r***.com/questions/10198228/…***.com/questions/8161014/custom-heat-map-in-r。这只是在 SO 中搜索 [r] heat map 时的前几个。 @PaulHiemstra 似乎是重复的,那么 - 这些问题的答案有点稀疏,但看起来所有信息都在那里,对吧? Plotting a heat map for an upper or lower triangular matrix的可能重复 【参考方案1】:

对于一个漂亮的 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()

【讨论】:

【参考方案2】:

您可以只使用image() 函数来创建热图。通过指定col 参数来指定颜色进行自定义。

请注意,如果您当前使用的是 data.frame,则可能需要将其转换为矩阵:

 image(as.matrix(myVar))

【讨论】:

【参考方案3】:

或者,您可以使用 ggplot2 制作热图,只需使用 tile geometry (geom_tile)。请参阅this link 了解一个非常详细的示例。

【讨论】:

以上是关于R中的热图或密度图的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化绘制二维的密度图:在R中建立二维散点数据的连续密度热图2D密度估计MASS包中的kde2d函数实现2D密度估计geom_density2d函数可视化二维密度图

如何将平均线添加到R中的分组密度图中?

R语言可视化密度图并在密度图中嵌入图例信息使用geomtextpath包的geom_textdensity函数,将图例(legend)信息嵌入到密度图中

r 重新排序条形图或热图中的水平

Python & Plotly:将悬停数据添加到密度热图

在R中创建连续热图