geom_tile针对不同因素的不同梯度比例和颜色

时间:2017-09-21 00:44:53

标签: r ggplot2

您好我想绘制以下数据帧。

d<- data.frame (pid=c("d","b","c"), type=c("rna","rna","rna"), value = c(1,2,3) )
d2 <- data.frame (pid=c("d","b","c"), type=c("dna","dna","dna"), value = c(10,20,30) )
df <- rbind (d,d2)

 ggplot(df, aes(y=pid, x=type  ) ) + geom_tile(aes(fill = value),
  colour = "white") + scale_fill_gradient(low = "white",
  high = "steelblue") 

这会产生一个如下图, enter image description here

然而,我希望每个x因子都有自己的颜色渐变,所以理想情况下rna是蓝色到白色而dna是红色到白色。反正有没有这样做?如果不可能有不同的梯度,那么仅仅是不同的尺度呢?谢谢!

2 个答案:

答案 0 :(得分:1)

ggplot(iris, aes(Sepal.Length, 
                 Petal.Width, 
                 color = Species, 
                 alpha = Sepal.Width)) + 
  geom_point(size = 4)

enter image description here

另见:How to create a continuous legend (color bar style) for scale_alpha?

答案 1 :(得分:1)

以下是将@Brian的建议应用于原始示例的内容。您可能需要单独重新调整rnadna值,以使颜色范围更具可比性。

p = ggplot(df, aes(y=pid, x=type, fill=type, alpha=value)) +
    geom_tile(colour="white", size=1) + 
    scale_fill_manual(values=c(dna="salmon", rna="steelblue")) +
    theme_bw() +
    theme(panel.grid=element_blank()) +
    coord_cartesian(expand=FALSE)

enter image description here