我想从一组点在R中绘制热图。
我有一个像
这样的数据框X Y col
1 2 1
1 1 4
2 4 9
.......
我希望有一个热图,X和Y是点的坐标,col可以是0到40.我试图绘制点或使用melt(),但没有运气。< / p>
我可以使用geom_point()绘制一些点,但是我希望从一种颜色到另一种颜色的平滑过渡,有些可能这不是正确的事情。
答案 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()
产生
修改强>
这个
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")
产生