平滑热图 - 如何创建它们?

时间:2018-01-29 08:50:10

标签: r ggplot2 heatmap

我试图创造“平滑”的感觉。 R中的热图。目前我可以根据我在网上找到的例子获得带有分档或六边形的基本分区:

# Color:
rf <- colorRampPalette(rev(brewer.pal(11,'Spectral')))
r <- rf(32)

# Data:
x <- rnorm(mean=1.5, 5000)
y <- rnorm(mean=1.6, 5000)
df <- data.frame(x,y)

#Plot:
p <- ggplot(df, aes(x,y))
h3 <- p + stat_bin_hex(bins=25) + scale_fill_gradientn(colours=r)
h3

enter image description here

我更喜欢下面的例子。它只涉及视觉方面。您是否知道如何创建大致类似的东西?

enter image description here

1 个答案:

答案 0 :(得分:1)

你怎么把它变成轮廓?

library("ash")
library(gplots)
library(RColorBrewer)
xmax=max(df$x)
xmin=min(df$x)
xstep=(xmax-xmin)/25
xlevels=as.numeric(levels(cut(df$x,25,labels=seq(xmin,xmax,xstep)[-1])))
ymax=max(df$y)
ymin=min(df$y)
ystep=(ymax-ymin)/25
ylevels=as.numeric(levels(cut(df$y,25,labels=seq(ymin,ymax,ystep)[-1])))

x00<-bin2(x=as.matrix(df),nbin=c(25,25))
my_palette <- colorRampPalette(rev(brewer.pal(11,'Spectral')))
filled.contour(x00$nc, color.palette = my_palette,main = "My Contour",x=xlevels,y=ylevels)

enter image description here