用渐变填充geom_tile

时间:2017-10-19 06:04:18

标签: r ggplot2 gradient

我想创建一个渐变图。我想用渐变填充我的geom_tile。但是,R经常告诉我Error: Discrete value supplied to continuous scale

df <- data.frame(value=c(55, 40, 5),
             zz=c("A", "B", "C"))

df$lower <- df$value-2.9
df$upper <- df$value+2.9
ggplot(df, aes(x=zz, y=value, fill=zz))+
   geom_tile(aes(x=zz, y=value, fill=zz), width=0.2,height=2.9)

enter image description here

现在,我想用渐变色调着色(在中心最密集着色(列=值)并淡出到末端(上下)。

我怎样才能实现这一目标? geom_tile是否正确geom? 感谢

修改

渐变应位于图块内,请参阅Alex Krusz的示例。链接:here enter image description here

1 个答案:

答案 0 :(得分:2)

我不认为ggplot是用于此类用途的,但这是模拟透明度渐变的一种方法。

创建插值透明度值的数据集:

ggplot() +
  geom_rect(data = df.new,
            aes(xmin = xmin, xmax = xmax, 
                ymin = ymin, ymax = ymax, 
                alpha = alpha, fill = zz)) +
  scale_x_continuous(breaks = as.integer(df$zz),
                     labels = df$zz) +
  scale_alpha_identity() +
  theme_bw()

绘制结果:

{{1}}

plot