ggplot:基于两个向量的热图

时间:2015-12-02 10:29:00

标签: r plot ggplot2 heatmap

我正在尝试将数据绘制为ggplot2中的热图。我们了解到,您通常需要xyz进行协调,以xy进行投标,然后按{{1}进行着色}。我发现了很多热图示例,但它们都已经有z向量。

我不明白如何从data.frame中的两列生成可用的z向量。就我而言,每一行代表一个人的数据,每一列是一个等级(或其他)的分数。例如:

z

这会生成切片,但我如何获得library(ggplot2) d <- data.frame(x = sample(20, 500, prob=c(1:10, 10:1), replace = TRUE), y = sample(20, 500, prob=c(1:10, 10:1), replace = TRUE)) ggplot(d, aes(x, y)) + geom_tile() 以便设置d$z

我觉得这应该很简单,但我无法绕过它。任何指针都会受到赞赏。

谢谢!

1 个答案:

答案 0 :(得分:3)

例如,您可以计算每个x和y组合的观察数量,并将其映射到fill

library(ggplot2)
d <- data.frame(x = sample(20, 500, prob=c(1:10, 10:1), replace = TRUE), 
                y = sample(20, 500, prob=c(1:10, 10:1), replace = TRUE))

library(dplyr)
group_by(d,x,y) %>% summarize(n=n()) %>% 
  ggplot(aes(x, y,fill=n)) + geom_tile()

enter image description here