📜  如何在R中的热图中显示图例?(1)

📅  最后修改于: 2023-12-03 14:52:52.330000             🧑  作者: Mango

如何在R中的热图中显示图例?

在R语言中,可以使用heatmap()函数绘制热图。热图是一种用不同颜色表示数值的二维图形,通常用于可视化矩阵数据。然而,默认情况下,热图中不会显示图例,因此本文将介绍如何在R中的热图中显示图例。

1. 安装和加载所需的R包

在开始之前,请确保安装了以下R包:gplotsRColorBrewer。您可以使用以下命令来安装它们:

install.packages("gplots")
install.packages("RColorBrewer")

然后,在R中加载它们:

library(gplots)
library(RColorBrewer)
2. 创建示例数据

我们将使用mtcars数据集来演示如何在热图中显示图例。mtcars数据集包含了32款不同的汽车,以及它们的MPG、马力、排量等信息。

data("mtcars")
3. 绘制热图并显示图例

首先,我们使用heatmap()函数来绘制热图:

heatmap(mtcars)

这将生成一个简单的热图,但是没有图例:

heatmap_without_legend

为了在热图中显示图例,我们需要使用heatmap.2()函数。此函数是gplots包中的增强版本,可以提供更多的选项和更好的图例支持。

heatmap.2(mtcars, trace="none", dendrogram="none", Colv=FALSE, scale="row", col=brewer.pal(9, "YlOrBr"), key=TRUE, keysize=1.0, key.title="MPG", symkey=FALSE)

让我们来解释一下这些参数:

  • trace="none":不显示行名和列名。
  • dendrogram="none":不显示行聚类和列聚类。
  • Colv=FALSE:不在侧面显示列聚类。
  • scale="row":对行进行缩放,而不是对整个矩阵进行缩放(这可以更好地突出显示每行之间的差异)。
  • col=brewer.pal(9, "YlOrBr"):使用9个颜色的YlOrBr调色板。
  • key=TRUE:在热图旁边显示图例。
  • keysize=1.0:设置图例的大小。
  • key.title="MPG":设置图例标题。
  • symkey=FALSE:设置图例为连续性的,而不是离散性的。

现在,让我们看看生成的热图及其图例:

heatmap_with_legend

可以看到,图例显示了颜色范围以及相应的值。此外,由于我们使图例大小等于1.0,因此它实际上与热图具有相同的大小,从而使两者更加匹配。

4. 进一步自定义图例

对于更高级的用户,可以对图例进行更多的自定义操作。例如,您可以改变图例中数字的大小和颜色,或者将图例放在热图的不同位置。

为了演示这一点,以下是一个更自定义的示例:

heatmap.2(mtcars, trace="none", dendrogram="none", Colv=FALSE, scale="row", col=brewer.pal(9, "YlOrBr"), key=TRUE, keysize=1.5, cexCol=0.8, cexRow=1.2, symkey=FALSE, density.info="none", margins=c(7,10), main="MPG Heatmap")

这里有几个新参数:

  • cexCol=0.8:设置列名的大小。
  • cexRow=1.2:设置行名的大小。
  • density.info="none":不显示每个单元格中数字的密度,因为它们可能会干扰图例。
  • margins=c(7,10):将热图的边距设置为7点和10点。这使得图例看起来更紧凑,并将它们与热图分开。
  • main="MPG Heatmap":设置图形的主标题。

以下是生成的热图:

customized_heatmap_with_legend

可以看到,现在数字更大,颜色更深,图例更紧凑,并且图例处于热图下方而不是侧面。这是一种更高级的自定义方法,可以将热图与您的具体数据集匹配。

结论

本文介绍了如何在R中的热图中显示图例。通过使用gplots包中的heatmap.2()函数,我们可以轻松地添加图例,并灵活地自定义设置以满足我们的需求。希望本文能对您有所帮助!