散射图 - 用于“如果”,“和”的多种颜色,条件 [英] Scatterplot - multiple colours for "if", "and" conditions

查看:134
本文介绍了散射图 - 用于“如果”,“和”的多种颜色,条件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在散点图中指定颜色,其中有多个条件。
文件是 df 下面。
我绘制 Tissue1 vs Tissue2 值。我要着色如下:

I need to attribute color in a scatterplot where I have multiple conditions. The file is df below. I am plotting Tissue1 vs Tissue2 values. I would like to colour as follows:

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:

I am plotting Tissue1 vs Tissue2 using ggplot:

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")

我已尝试创建因子,但无法添加

I have tried creating factors, but haven't been able to add them with the ifelse function.

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

我会感谢您的帮助。
谢谢!

I'd appreciate some help with this. Thanks!

推荐答案

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()

这篇关于散射图 - 用于“如果”,“和”的多种颜色,条件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆