R 中的异常热图

Discontionous heatmap in R

我希望在 R 中创建类似于以下类型的不连续热图:

我的数据整理如下:

k_e percent time
 ..   ..     ..
 ..   ..     ..

我希望 k_e 是 x 轴,percent 在 y 轴上,time 表示颜色。

我能找到的所有链接都绘制了连续矩阵 http://www.r-bloggers.com/ggheat-a-ggplot2-style-heatmap-function/ 或插值。但我不希望上述两种情况,我想绘制不连续的热图,如上图所示。

第二个是六边形图 如果你的 (x,y) 对是唯一的,你可以做一个 x y 图,如果这是你想要的,你可以尝试使用基本 R plot 函数:

x <- runif(100)
y<-runif(100)
time<-runif(100)

pal <- colorRampPalette(c('white','black'))
#cut creates 10 breaks and classify all the values in the time vector in
#one of the breaks, each of these values is then indexed by a color in the
#pal colorRampPalette.

cols <- pal(10)[as.numeric(cut(time,breaks = 10))]

#plot(x,y) creates the plot, pch sets the symbol to use and col the color 
of the points
plot(x,y,pch=19,col = cols)

有了ggplot,你也可以试试:

library(ggplot2)
qplot(x,y,color=time)

生成数据

d <- data.frame(x=runif(100),y=runif(100),w=runif(100))

使用ggplot2

require(ggplot2)

样本数

以下代码生成不连续的热图,其中颜色表示落入垃圾箱的项目数:

ggplot(d,aes(x=x,y=y)) + stat_bin2d(bins=10)

平均体重

以下代码创建了一个不连续的热图,其中颜色表示当前 bin 内所有样本的变量 w 的平均值。

ggplot(d,aes(x=x,y=y,z=w)) + stat_summary2d(bins=10)