我有一个示例数据如下,我想创建一个热图,其中平均睡眠持续时间(SLP)显示根据3个招募网站(网站)和5个招聘年(年)。
SLP site year sex
8.6 1 2008 1
7.2 1 2005 2
6.4 2 2006 2
9.5 3 2007 2
6.1 2 2009 2
5.1 3 2008 1
2.1 2 2006 2
3.6 1 2001 1
8.6 1 2008 1
7.2 1 2005 2
6.4 2 2006 2
9.5 3 2007 2
6.1 2 2009 2
5.1 3 2008 1
2.1 2 2006 2
3.6 1 2001 1
在我想要制作的热图中,x轴和y轴分别是年份和地点,每个细胞包括睡眠持续时间的平均持续时间。
我不知道如何从数据框制作矩阵来制作热图。 我该怎么做?
答案 0 :(得分:1)
有很多选项,它还取决于您希望如何创建热图。如果您想使用ggplot2
,则无需修改data.frame
。例如,这应该有效:
txt <- "SLP site year sex
8.6 1 2008 1
7.2 1 2005 2
6.4 2 2006 2
9.5 3 2007 2
6.1 2 2009 2
5.1 3 2008 1
2.1 2 2006 2
3.6 1 2001 1
8.6 1 2008 1
7.2 1 2005 2
6.4 2 2006 2
9.5 3 2007 2
6.1 2 2009 2
5.1 3 2008 1
2.1 2 2006 2
3.6 1 2001 1"
d <- read.table(text = txt, header = TRUE)
d$year <- factor(d$year) # make year a factor.
ggplot(d, aes(x = site, y = year, fill = SLP)) + geom_tile()