对ggplot中的子组使用不同的颜色(和透明度)

时间:2018-11-13 20:37:08

标签: r ggplot2

我正在尝试对ggplot中的基因亚组使用不同的颜色。目前,我使用了该脚本

ggplot() +
         geom_point(data=log2(gdat), aes_string(x="WT", y="mutant"),
                    col=ifelse(gdat$Rep==1, "blue", "gray"), alpha=3/10, size=2)+
           geom_point(data=log2(gdat), aes_string(x="WT", y="mutant"),
                      col=ifelse(gdat$Rep==2, "red", "gray"), alpha=3/10, size=2, shape=3)+
           geom_abline(intercept = 0, slope = 1) +
scale_x_continuous(trans='log2') +
            scale_y_continuous(trans='log2')

这是我用来绘制脚本的最后一部分。我有一组红色的基因和一组蓝色的基因。但是,它们大多数属于灰色的组(它覆盖了整个图形并使其他两个子组不可见)。有没有办法使该灰色子组透明,以便其他两个组可见?谢谢大家。

1 个答案:

答案 0 :(得分:1)

我试图通过mimickig来提供某种程度的灵活性的解决方案,该方法是通过plot()和points()调用在R基本绘图中完成的。

# reproducible example dataframe
set.seed(1234)
a <- rnorm(1000)
df <- data.frame(wt = a,
                 mutant = 2*a+rnorm(1000),
                 rep = c(rep(1, 50), rep(2, 50), rep(3, 900)))

# plot
library(ggplot2)
ggplot(df) +
  geom_point(data=df[df$rep==3,], mapping=aes(x=wt, y=mutant), col="grey", size=4, alpha = 0.75)+
  geom_point(data=df[df$rep==1,], mapping=aes(x=wt, y=mutant), col="blue", size=4, alpha = 0.50)+
  geom_point(data=df[df$rep==2,], mapping=aes(x=wt, y=mutant), col="red", size=4, alpha = 0.25)

enter image description here