我有兴趣在 ggplot2 中使用geom_tile
构建热图,该热图使用基于因子的不同渐变高颜色。
下图根据xy_type
创建了各个图块的蓝色或红色,但没有渐变。
ggplot() +
geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=factor(xy_type))) +
scale_fill_manual(values=c("blue", "red"))
下面的图表不使用xy_type
因子来选择颜色,但我会根据xy_avg_value
获得单个组渐变。
ggplot() +
geom_tile(data=mydata, aes(x=factor(myx), y=myy, fill=xy_avg_value))
是否有混合这两个图的技术?我可以使用facet_grid(xy_type ~ .)
使用渐变创建此数据的单独图。由于这最终将成为一个地图(x~y坐标),我想找到一种方法在一个geom_tile
地图中一起显示不同的渐变。
答案 0 :(得分:20)
一般来说, 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'))
但是要获得一个明智的传奇会很难。