📅  最后修改于: 2023-12-03 14:52:52.330000             🧑  作者: Mango
在R语言中,可以使用heatmap()
函数绘制热图。热图是一种用不同颜色表示数值的二维图形,通常用于可视化矩阵数据。然而,默认情况下,热图中不会显示图例,因此本文将介绍如何在R中的热图中显示图例。
在开始之前,请确保安装了以下R包:gplots
和RColorBrewer
。您可以使用以下命令来安装它们:
install.packages("gplots")
install.packages("RColorBrewer")
然后,在R中加载它们:
library(gplots)
library(RColorBrewer)
我们将使用mtcars
数据集来演示如何在热图中显示图例。mtcars
数据集包含了32款不同的汽车,以及它们的MPG、马力、排量等信息。
data("mtcars")
首先,我们使用heatmap()
函数来绘制热图:
heatmap(mtcars)
这将生成一个简单的热图,但是没有图例:
为了在热图中显示图例,我们需要使用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
:设置图例为连续性的,而不是离散性的。现在,让我们看看生成的热图及其图例:
可以看到,图例显示了颜色范围以及相应的值。此外,由于我们使图例大小等于1.0,因此它实际上与热图具有相同的大小,从而使两者更加匹配。
对于更高级的用户,可以对图例进行更多的自定义操作。例如,您可以改变图例中数字的大小和颜色,或者将图例放在热图的不同位置。
为了演示这一点,以下是一个更自定义的示例:
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"
:设置图形的主标题。以下是生成的热图:
可以看到,现在数字更大,颜色更深,图例更紧凑,并且图例处于热图下方而不是侧面。这是一种更高级的自定义方法,可以将热图与您的具体数据集匹配。
本文介绍了如何在R中的热图中显示图例。通过使用gplots
包中的heatmap.2()
函数,我们可以轻松地添加图例,并灵活地自定义设置以满足我们的需求。希望本文能对您有所帮助!