15

我有兴趣在 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))

有没有混合这两个情节的技术?我可以使用 a 使用facet_grid(xy_type ~ .)渐变创建此数据的单独图。由于这最终将是一张地图(x~y 坐标),我想找到一种方法在一张geom_tile地图中同时显示不同的渐变。

4

1 回答 1

22

一般来说,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'))

在此处输入图像描述

但是要获得一个明智的传说将是很困难的。

于 2012-04-19T17:35:35.493 回答