【问题标题】:Scatterplot - multiple colours for "if", "and" conditions散点图 - “if”、“and”条件的多种颜色
【发布时间】:2015-09-20 13:27:53
【问题描述】:

我需要在有多个条件的散点图中对颜色进行属性分析。 该文件是df 下面。 我正在绘制 Tissue1Tissue2 值。我想着色如下:

pvalue1 AND pvalue2 < 0.1 = "yellow"
pvalue1 ≤ 0.1 = "green" (if pvalue2 >0.1 or NA)
pvalue2 ≤ 0.1 = "red" (if pvalue1 >0.1 or NA)
(all other = "grey")

df:

rowname Tissue1 pvalue1 Tissue2 pvalue2
gene1   1.3 0.7 1.6 0.09
gene2   -0.9    0.07    -0.7    0.065
gene3   2   0.9 1.65    0.9
gene4   1.7 0.07    1.6 0.09

我正在使用 ggplot 绘制 Tissue1 与 Tissue2:

ggplot(data=data.frame(x=df$Tissue1,y=df$Tissue2), 
       aes(x,y)
       )+ geom_point(col="grey30") + 
          geom_abline(stat = "abline", colour = "red", size = 1) + 
          xlab("foldchange Tissue1") + ylab("foldchange Tissue2")

我尝试过创建因子,但无法使用 ifelse 函数添加它们。

Sig1 <- subset(df, df$pvalue1< 0.1)
Sig2 <- subset(df, df$pvalue2 < 0.1)

我很感激这方面的帮助。 谢谢!

【问题讨论】:

    标签: r if-statement colors ggplot2 scatter-plot


    【解决方案1】:
    DF <- read.table(text = "rowname Tissue1 pvalue1 Tissue2 pvalue2
                     gene1   1.3 0.7 1.6 0.09
                     gene2   -0.9    0.07    -0.7    0.065
                     gene3   2   0.9 1.65    0.9
                     gene4   1.7 0.07    1.6 0.09", header = TRUE)
    
    #the order of the following lines is important
    DF$col <- "grey"
    DF[!is.na(DF$pvalue1) & DF$pvalue1 <= 0.1 , "col"] <- "green"
    DF[!is.na(DF$pvalue2) & DF$pvalue2 <= 0.1 , "col"] <- "red"
    DF[!is.na(DF$pvalue1) & !is.na(DF$pvalue2) & 
       DF$pvalue1 < 0.1 & DF$pvalue2 < 0.1, 
       "col"] <- "yellow"
    
    library(ggplot2)
    ggplot(DF, aes(x = Tissue1, y = Tissue2, color = col)) + 
      geom_point() + 
      geom_abline(stat = "abline", colour = "red", size = 1) + 
      xlab("foldchange Tissue1") + ylab("foldchange Tissue2") +
      scale_color_identity()
    

    【讨论】:

    • 谢谢@Roland。但是,我忘了提到我在 pvalue 列中有缺失值并得到以下错误:在数据帧的下标分配中不允许缺失值
    • 抓住他们,例如,使用!is.na(DF$pvalue2) &amp;
    • 我已将其添加到示例中。
    • 太棒了。谢谢你。这对于许多其他情节也将非常有用。
    猜你喜欢
    • 2016-11-16
    • 2022-01-14
    • 2014-09-10
    • 2011-08-29
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-02-16
    相关资源
    最近更新 更多