从R中的点绘制热图

时间:2014-08-01 15:00:42

标签: r charts heatmap

我想从一组点在R中绘制热图。

我有一个像

这样的数据框
X  Y  col
1  2  1
1  1  4
2  4  9
.......

我希望有一个热图,X和Y是点的坐标,col可以是0到40.我试图绘制点或使用melt(),但没有运气。< / p>

我可以使用geom_point()绘制一些点,但是我希望从一种颜色到另一种颜色的平滑过渡,有些可能这不是正确的事情。

1 个答案:

答案 0 :(得分:3)

set.seed(1)
library(ggplot2)
df <- as.data.frame(expand.grid(1:50, 1:50))
df$col <- sample(0:40, size = nrow(df), replace = TRUE)
ggplot(df, aes(x = Var1, y = Var2, colour = col, fill = col )) + 
  geom_tile()

产生

enter image description here

修改

这个

set.seed(1)
library(ggplot2)
df <- as.data.frame(expand.grid(1:50, 1:50))
df$col <- sample(0:40, size = nrow(df), replace = TRUE)
df <- df[sample(1:nrow(df), nrow(df) * .2, replace = FALSE), ]  # make holes
df <- df[rep(1:nrow(df), df$col), -3]
ggplot(df, aes(x = Var1, y = Var2)) + 
  geom_point() + 
  stat_density2d(aes(fill=..density..), geom = "tile", contour = FALSE) +
  scale_fill_gradient2(low = "white", high = "red")

产生

enter image description here