R 基于因子的不同高填充颜色的geom_瓷砖热图

R 基于因子的不同高填充颜色的geom_瓷砖热图,r,ggplot2,heatmap,R,Ggplot2,Heatmap,我感兴趣的是在ggplot2中使用geom_tile构建热图,该热图根据因子使用不同的渐变高颜色 下面的图创建了一个图,其中单个瓷砖根据xy\u类型为蓝色或红色,但没有渐变 ggplot() + geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=factor(xy_type))) + scale_fill_manual(values=c("blue", "red")) 下面的图没有使用xy\u类型因子来选择颜色,但我得到了基

我感兴趣的是在ggplot2中使用
geom_tile
构建热图,该热图根据因子使用不同的渐变高颜色

下面的图创建了一个图,其中单个瓷砖根据
xy\u类型为蓝色或红色
,但没有渐变

ggplot() + 
  geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=factor(xy_type))) + 
  scale_fill_manual(values=c("blue", "red"))
下面的图没有使用
xy\u类型
因子来选择颜色,但我得到了基于
xy\u平均值
的单组渐变

ggplot() + 
  geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=xy_avg_value))

有没有一种技巧可以将这两个情节融合在一起?我可以使用
facet\u网格(xy\u type~)
创建此数据的单独绘图,并使用渐变。由于这最终将是一张地图(x~y坐标),我想找到一种方法在一张
geom_tile
地图中同时显示不同的渐变。

一般来说,ggplot2不允许一种类型的多个比例(即多个颜色或填充比例),因此我怀疑这(很容易)不可能

我能得出的最佳近似值是:

df <- data.frame(expand.grid(1:5,1:5))
df$z <- runif(nrow(df))
df$grp <- rep(letters[1:2],length.out = nrow(df))

ggplot(df,aes(x = Var1,y = Var2,fill = factor(grp),alpha = z)) + 
    geom_tile() + 
    scale_fill_manual(values = c('red','blue'))

df解决了这个问题,非常适合我使用。在我的应用程序中,双图例非常简单易懂。谢谢你的帮助!